Команда 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