Изменение прав доступа к файлам
Для изменения прав доступа к файлам и каталогам используется команда 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
Задания
- Создайте директорию public_html. Попробуйте удалить директорию public_html у другого пользователя.
- Скопируйте файл /var/log/dmesg в свою корневую директорию. Просмотрите содержимое файла dmesg с помощью команд more и less, а затем с помощью команды cat. Сформулируйте отличия в работе данных команд.
- С помощью команды ls -la посмотрите, есть ли в вашей домашней директории файлы, начинающиеся с символов .saves или .nfs. Если да, то удалите их.
- Создайте три архива директории /usr/share/dict (dict.tar, dict.tgz, dict.zip), используя различные способы архивации, и сравните размеры получившихся файлов.