Кажется, я не могу использовать umask
, чтобы убедиться, что мое разрешение файла по умолчанию - 755. Мне это нужно потому что каждый раз, когда я извлекаю файл сценария на CentOS
из системы контроля версий, он не имеет разрешения x, и мне приходится вручную chmod + x script.sh
. Как umask получить разрешение файла по умолчанию 755? Почему расчет umask для файлов основан на максимальном разрешении для файлов 666, а не 777?
Разрешения, которые получает файл, могут быть уменьшены только с помощью umask, поэтому нет, вы не можете использовать его для добавления разрешений. Кроме того, в отличие от ваших утверждений, разрешения перед уменьшением маскированных битов не равны 0666 или 0777, а зависят от того, что устанавливает рассматриваемая программа. Обычный обычай - создавать обычные файлы с режимом 0666 и каталоги с 0777 и позволять umask обрабатывать ограничение доступа для других пользователей, но программа, которая создает особенно личные файлы, будет использовать 0600 в качестве начальных разрешений.
Если вам нужно приложение для создания файлов с определенными разрешениями, вам нужно исправить это на уровне приложения. Для Subversion см. свойство svn:executable
.
Можно создать функцию в вашем.bashrc (, если вы используете bash ), которая будет делать две вещи.
chmod +x script.sh
myfunction () {
#do things with parameters like $1 such as
checkout_command $1
chmod +x $1
}
#calls `myfunction` to checkout the script and chmod on the fly.
myFunction my_script.sh