Для изменения прав доступа к файлам и каталогам используется команда chmod (change mode). Изменять права можно только у тех файлов и директорий, владельцем которых вы являетесь. Любое из прав доступа можно добавить или отменить. Для добавления соответствующего права используется символ +, для отмены применяется знак -, например,
chmod +x-w progВ данном примере для всех групп пользователей добавляется право на выполнение и отменяется право на запись.
Можно добавить или отменить право у отдельных категорий пользователей; категория владелец обозначается символом u (от user), группа -- символом g (group), прочие пользователи обозначаются символом o (other), для обозначения всех групп сразу используется символ a (all), предполагаемый по умолчанию.
Пример
Приведенная ниже команда устанавливает право на чтение для всех
пользователей (кроме владельца и группы), а право на запись и выполнение
отменяет.
chmod o+r-wx my_scriptПраво на выполнение показывает, что файл содержит команды и может непосредственно исполняться системой. Такое право часто устанавливается для файлов, содержащих команды shell.
Права доступа устанавливаются и для каталогов. Право на чтение означает возможность получения списка файлов, находящихся в данном каталоге, право на выполнение -- возможность перехода в данный каталог, право на запись дает возможность создавать и удалять файлы в данном каталоге.
Вместо символов разрешений многие пользователи предпочитают применять абсолютный метод, который позволяет изменять сразу все права. Данный метод предполагает использование двоичной маски, которая обозначает права доступа для каждой категории.
| Код доступа | --- | --x | -w- | -wx | r-- | r-x | rw- | rwx |
|---|---|---|---|---|---|---|---|---|
| Двоичная маска | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
| Восьмеричная цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Для создания двоичной маски права каждой категории пользователей кодируются трехзначным двоичным числом. Наличие соответствующего права обозначается цифрой 1, отсутствие -- цифрой 0. Далее каждое число переводится в восьмеричную систему счисления (см. таблицу). Получившиеся три восьмеричных цифры используются в качестве аргумента команды chmod.
Пример
Маска, соответствующая коду rwx, имеет вид 111=78, а
для кода r-x (запрет на запись) -- 101=58. Заметьте,
что каждый раз полученная маска состоит из трех цифр, каждая из которых это
либо 0, либо 1.
Получившийся набор цифр и используется в качестве параметра команды chmod, например,
chmod 755 my_script
Задания