В чем разница между + и = при использовании chmod?

Я читаю все о chmod, но ничего не понимаю. Если я напишу chmod u=rwx file это "влияет" на меня для всех прав на файл, и если я пишу chmod u+rwx file это "добавляет" мне все права на файл, но в чем разница между + а также =?

2 ответа

Решение

Поскольку вы указываете все биты чтения, записи и выполнения, нет никакой разницы.

Разница возникает, если вы укажете только некоторые биты:

$ umask 022
$ touch afile ; ls -l afile
-rw-r--r-- 1 jackman jackman 0 Aug 21 11:23 afile
$ chmod u+x afile; ls -l afile
-rwxr--r-- 1 jackman jackman 0 Aug 21 11:23 afile*
$ chmod u=x afile; ls -l afile
---xr--r-- 1 jackman jackman 0 Aug 21 11:23 afile*

Из справочных страниц:

Оператор + вызывает добавление выбранных битов режима файла к существующим битам режима файла каждого файла; - вызывает их удаление; и = вызывает их добавление и приводит к удалению не упомянутых битов, за исключением того, что неизменяемые установленные пользователем биты каталога и идентификаторы группы не затрагиваются.

Другие вопросы по тегам