Какая разница между chmod u+x
и просто chmod +x
? Я видел тонну обучающих программ, в которых говорится, что u+x
скрипты должны выполняться. Однако, опущение u
, похоже, не имеет никакого эффекта.
источник
Какая разница между chmod u+x
и просто chmod +x
? Я видел тонну обучающих программ, в которых говорится, что u+x
скрипты должны выполняться. Однако, опущение u
, похоже, не имеет никакого эффекта.
Справочная страница chmod
охватывает это.
Это означает, что chmod u+x somefile
предоставит только владельцу разрешения на выполнение этого файла, в то chmod +x somefile
время как то же самое, что и chmod a+x somefile
.
Страница руководства chmod гласит:
Формат символического режима есть
[ugoa...][[+-=][rwxXstugo...]...][,...]
. Можно указать несколько символических операций, разделенных запятыми.Комбинация букв «ugoa» определяет, какие права доступа пользователей к файлу будут изменены: пользователь, которому он принадлежит (u), другие пользователи в группе файла (g), другие пользователи, не входящие в группу файла (o), или все пользователи (а). Если ничего из этого не дано, эффект будет таким, как если бы было указано «а», но биты, установленные в umask, не будут затронуты.
chmod +x file
отличается от другихchmod a+x file
- см. Подробности в ответе Равексины.Простое выполнение
+x
применяет его ко всем флагам: [u] ser, [g] roup, [o] thers.Введите
man chmod
для получения дополнительной информации.источник
Требования
Прежде всего, я предлагаю вам прочитать эти вопросы и ответы, связанные ниже:
Это поможет вам понять все необходимые детали, которые вам нужно знать.
Укороченная версия
chmod +x
равноchmod ugo+x
(на основеumask
стоимости)chmod a+x
равноchmod ugo+x
(без учетаumask
стоимости)объяснение
Результат
chmod a+x
состоит в том, чтобы установить исполняемый бит для каждого (Владелец, Группа, Другие), не так ли?Тем не менее, с
chmod +x
этим немного сложно, он говорит, что использоватьumask
значение и на основе этого значения добавитьx
к каждому, что разрешено.Так что, если
umask
моя среда0002
:Это добавит
x
к пользователю (владельцу), группе и другим, в этой ситуации (которая является ситуацией по умолчанию для большинства систем), это точно такchmod ugo+x
же, какchmod a+x
или в более подробной форме:Можете ли вы определить связь между
chmod u+x,g+x,o+x
выходомumask -S
?Теперь давайте изменим
umask
текущую оболочку на0003
:Как вы можете видеть, теперь только владелец и группа получат исполняемый бит, а не остальные. Это означает,
chmod +x
что теперь равноchmod u+x,g+x
илиchmod ug+x
.Время вопросов!
Что произойдет, если я запустил
chmod +w
файл после установкиumask
на0003
?То же самое , как и прежде, она влияет только
user
иgroup
файла , потому что 3 также удаляет разрешение на запись (2).бонус
Это имеет тот же эффект, когда вы удаляете немного как
chmod -w
:источник
chmod u+x
сделает исполняемый файл для вашего пользователя (он добавит его только для вашего пользователя, хотя он может быть уже исполняемым владельцем группы или «другим»).chmod +x
илиchmod a+x
(«все плюс исполняемый бит») делает файл исполняемым для всех.Если вы сделаете это с каталогом, он сделает каталог доступным для поиска. Т.е. вы можете перечислить содержимое каталога, на который у вас есть + x разрешение.
источник
chmod u+x file
означает добавить исполняемый бит к владельцу файла, игнорируя при этомumask
(Ваш мод будет установлен, без вопросов).chmod +x file
означает добавление исполняемого бита владельцу, группе и другим при рассмотренииumask
(сначала проверьте, аumask
затем примените моды, это может иметь разные эффекты в зависимости от значения umask).давайте создадим два файла:
Теперь я поставил
umask
на «111» , чтобы удалить исполняемые биты:umask 111
.Как вы можете видеть,
chmod
игнорируемыйumask
и file1 получил исполняемый бит для своего владельца, однако второй ничего не сделал, потому что рассматривает значение umask.источник