Символическое представление
Команда chmod поддерживает также символическую форму определения режимов доступа к файлу. Символическая форма записи делится на три части: для кого устанавливаются разрешения, какие операции с разрешениями будут выполняться и на какие разрешения эти операции будут влиять. Чтобы указать, для кого устанавливаются разрешения, используется комбинация символов u, g, o и a, как показано в табл. 9.5.
Таблица 9.5. Символическая форма записи аргументов команды chmod
Символ
Значение
u
Сокращенно от user (пользователь), означает владельца файла или каталога
g
Группа
o
Сокращенно от other (другие, остальные), означает весь остальной мир
a
Сокращенно от all (все); комбинация из всех трех символов: u, g и o
Если не указан ни один символ, предполагается a (all — все). Операцией может быть знак +, соответствующий добавлению заданных разрешений, знак -, соответствующий отъему заданных разрешений, или знак =, указывающий, что только заданные разрешения должны быть установлены, а все остальные отобраны.
Разрешения определяются символами r, w и x. В табл. 9.6 перечислены некоторые примеры символической формы записи.
Таблица 9.6. Примеры символической формы записи прав доступа к файлам
Атрибуты файлов
Значение
u+x
Добавляет право на выполнение, но только для владельца
u-x
Отнимает право на выполнение у владельца
+x
Добавляет право на выполнение для владельца, группы и остального мира. Эквивалент записи a+x
o-rw
Отнимает право на чтение и запись у всех, кроме владельца и группы
go=rw
Устанавливает право на чтение и запись для всех, кроме владельца. Если прежде файл имел разрешение на выполнение для группы и всего мира, это право отнимается
u+x,go=rx
Добавляет право на выполнение для владельца и устанавливает право на чтение и выполнение для группы и всего мира. При выполнении сразу нескольких операций с привилегиями они должны разделяться запятой
Кто-то предпочитает пользоваться восьмеричной формой записи, кому-то больше нравится символическая. Символическая форма записи удобна тем, что позволяет установить единственный атрибут, не влияя на остальные.
Дополнительную информацию и полный список параметров команды chmod можно найти на странице справочного руководства (man). А теперь несколько слов о параметре --recursive: он воздействует и на файлы, и на каталоги, поэтому он не так полезен, как можно было бы предположить, потому что редко требуется устанавливать одинаковые разрешения для файлов и каталогов.