Изменение разрешений файлов из командной строки

Для изменения разрешений файлов и папок в командной строке используются две основные команды: chown для изменения принадлежности и chmod для изменения привилегий.

Изменение принадлежности из командной строки

Команда chown, сокращение от «change ownership» (изменить принадлежность), позволяет изменить владельца и группу, ассоциированные с файлом или папкой. Для использования команды chown зачастую требуется доступ пользователя root, поэтому эта команда практически всегда предваряется командой sudo. Для использования команды chown введите имя нового владельца, за ним (при необходимости) - двоеточие и имя новой группы, а в конце - путь к объекту. В следующем примере Michelle использует команду chown для изменения принадлежности файла testfilel к учетной записи пользователя «kevin» и к учетной записи группы «admin».

Примечание. Вспомним, что, если требуется изменить принадлежность папки и ее содержимого (как рассматривалось в уроке 3), необходимо указать команде chown выполняться рекурсивно, добавив опцию -R.

Изменение привилегий из командной строки

Команда chmod, сокращение от «change file mode» (изменить режим файла), позволяет изменить ассоциируемые с файлом или папкой привилегии. Чтобы использовать команду chmod для файлов, которыми вы не владеете, требуется доступ пользователя root, поэтому эта команда зачастую предваряется командой sudo. Для использования команды chmod нужно ввести сначала новые привилегии, а затем путь к объекту.

Как и для смены привилегий, существуют два основных способа применения команды chmod.

► Использование алфавитно-цифровых сокращений. Базовый синтаксис имеет вид: тип учетной записи, модификатор и привилегия. Типы учетных записей включают и - для владельца, д - для группы и о - для всех остальных пользователей. Модификаторы включают + - для разрешения, — для запрета и = - для точной настройки. Привилегии включают: г для чтения, w для записи и х для выполнения или доступа к папке. Например, чтобы с помощью этого метода разрешить полный доступ для владельца и членов группы, но доступ только для чтения для всех остальных пользователей, необходимо ввести ug=rwx,o=r.

Совет. В качестве альтернативы привилегии х можно также использовать привилегию X для интеллектуального исполнения, которая указывает команде chmod добавить разрешение х только тем объектам, для которых это имеет смысл - всем папкам и файлам, которые уже помечены как исполняемые. Эта привилегия используется специально для рекурсивного применения, где х должна добавляться к папкам, но не (в большинстве случаев) к файлам.

► Использование восьмеричной нотации. Как видно, команда chmod широко использует ярлыки и сокращения. Чтобы еще больше уменьшить количество нажатий на клавиши, можно применять восьмеричную нотацию, которая использует цифровые сокращения для определения привилегий. Базовый синтаксис для восьмеричной нотации: первая цифра задает привилегии владельца, вторая - привилегии членов группы и последняя цифра задает привилегии всех остальных пользователей. Восьмеричная нотация использует 0 для отсутствия доступа; 1 - только для исполнения; 2 - только для записи и 4 - только для чтения. Чтобы использовать смешанные разрешения, нужно просто сложить числа вместе. Например, чтобы с помощью этого метода разрешить полный доступ для владельца и членов группы, но доступ только для чтения для всех остальных пользователей, необходимо ввести 775.

В следующем примере Michelle использует команду chmod для изменения разрешений файла testfilel и папки testfolder, чтобы разрешить доступ на чтение и запись для владельца и членов группы и доступ только на чтение для всех остальных пользователей. Она использует сначала алфавитно-цифровые сокращения, а затем восьмеричный эквивалент привилегий.

Примечание. Чтобы изменить привилегии папки и ее содержимого, необходимо выполнить команду chmod рекурсивно, т.е. добавить опцию -R.

Дополнительная информация. Команда chmod поддерживает многие другие настройки разрешений, включая полное управление ACL-списками,

однако эти возможности выходят за рамки данного руководства. Вы всегда можете получить дополнительную информацию из встроенной man-страницы команды chmod.