Изменение прав доступа к файлам
Для изменения прав доступа к файлам и каталогам используется команда 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), используя различные способы архивации, и сравните размеры получившихся файлов.