Команда chmod Linux

Команда chmod Linux


chmod

Эта команда имеет типичный для команд linux синтаксис, сначала команда, затем опции, а в конце файл или папка, к которой ее нужно применить:

  • $ chmod опции права /путь/к/файлу

Сначала рассмотрим какими бывают права доступа linux и как они устанавливаются. Пред этим рекомендую прочитать статью про права, ссылка на которую есть выше. Есть три основных вида прав:

  • r - чтение

  • w - запись

  • x - выполнение

  • s - выполнение от имени суперпользователя (дополнительный)

Также есть три категории пользователей, для которых вы можете установить эти права на файл linux:

  • u - владелец файла

  • g - группа файла

  • o - все остальные пользователи

Синтаксис настройки прав такой:

группа_пользователей действие вид_прав

В качестве действий могут использоваться знаки “+” - включить или “-“ - отключить. Рассмотрим несколько примеров:

  • u+x - разрешить выполнение для владельца

  • ugo+x - разрешить выполнение для всех

  • ug+w - разрешить запись для владельца и группы

  • o-x - запретить выполнение для остальных пользователей

  • ugo+rwx - разрешить все для всех

Но права можно записывать не только таким способом.

Есть еще восьмеричный формат записи, он более сложен для понимания, но пишется короче и проще.

Я не буду рассказывать как считать эти цифры, просто запомните какая цифра за что отвечает, так проще:

  • 0 - никаких прав

  • 1 - только выполнение

  • 2 - только запись

  • 3 - выполнение и запись

  • 4 - только чтение

  • 5 - чтение и выполнение

  • 6 - чтение и запись

  • 7 - чтение запись и выполнение

Права на папку linux такие же, как и для файла. Во время установки прав сначала укажите цифру прав для владельца, затем для группы, а потом для остальных.

Например:

  • 744 - разрешить все для владельца, а остальным только чтение

  • 755 - все для владельца, остальным только чтение и выполнение

  • 764 - все для владельца, чтение и запись для группы, и только чтение для остальных

  • 777 - всем разрешено все

Каждая из цифр не зависит от предыдущих, вы вбираете именно то, что вам нужно.

Теперь давайте рассмотрим несколько опций команды, которые нам понадобятся во время работы:

  • -c - выводить информацию обо всех изменениях

  • -f - не выводить сообщения об ошибках

  • -v - выводить максимум информации

  • –preserve-root - не выполнять рекурсивные операции для корня “/”

  • –reference - взять маску прав из указанного файла

  • -R - включить поддержку рекурсии

  • –version - вывести версию утилиты


Для того чтобы поменять права на все файлы в папке используйте опцию -R:

  • chmod -R ug+rw dir

Также вы можете смотреть подробную информацию про вносимые изменения:

chmod -Rv ug+rw dir