1.4. Изменение прав доступа к файлу
Вы можете изменять режим доступа к файлам, которыми владеете, с помощью команды chmod. Аргументы этой команды могут быть заданы либо в числовом виде (абсолютный режим), либо в символьном (символьный режим). Сначала рассмотрим символьный режим.
1.4.1. Символьный режим
Общий формат команды chmod для символьного режима таков:
chmod [кто] оператор [разрешения] файл
Значения параметра кто:
u Владелец
g Группа
o Другие пользователи
a Все (владелец, группа и другие пользователи)
Значения параметра оператор:
+ Добавление разрешения
— Удаление разрешения
= Установка заданного разрешения
Значения параметра разрешения:
r Право чтения
w Право записи
x Право выполнения
X Установка права выполнения только в том случае, если для какой‑либо категории пользователей уже задано право выполнения
s Установка бита SUID или SG1D для владельца или группы
t Установка sticky–бита[1]
u Установка тех же прав, что и у владельца
g Установка тех же прав, что и у группы
o Установка тех же прав, что и у других пользователей
1.4.2. Примеры использования команды chmod
Рассмотрим несколько примеров изменения режима доступа к файлу с помощью команды chmod. Предполагается, что строка режима для нашего файла имеет такой вид: rwxrwxrwx.
Команда | Строка режима | Результат |
chmod a‑x myfile | rw‑rw‑rw- | Отмена всех разрешений на выполнение |
chmod og‑w myfile | rw‑r--r-- | Отмена разрешений на запись для группы и других пользователей |
chmod g+w myfile | rw‑rw‑r-- | Добавление разрешения на запись для группы |
chmod u+x myfile | rwxrw‑r-- | Добавление разрешения на выполнение для владельца |
chmod go+x myfile | rwxrwxr‑x | Добавление разрешения на выполнение для группы и других пользователей |
chmod g=o myfile | rwxr‑x r‑x | Предоставление группе тех прав, которые уже установлены для других пользователей |
1.4.3. Абсолютный режим
Общий формат команды chmod для абсолютного режима таков:
chmod [режим] файл
Здесь параметр режим представляет собой восьмеричное число. В простейшем случае оно состоит из трех трехбитовых наборов, каждый из которых относится к соответствующей категории разрешений (владельца, группы, других пользователей). Старший бит
соответствует разрешению не чтение (1 — установлено, 0 -cнято), средний -pазрешению на запись, а младший -pазрешению на выполнение. Рассмотрим примеры:
Таблица 1.3. Восьмеричные значения Режима
Восьмеричное число | Результат |
400 | Владелец имеет право чтения |
200 | Владелец имеет право записи |
100 | Владелец имеет право выполнения |
040 | Группа имеет право чтения |
020 | Группа имеет право записи |
010 | Группа имеет право выполнения |
004 | Другие пользователи имеют право чтения |
002 | Другие пользователи имеют право записи |
001 | Другие пользователи имеют право выполнения |
Чтобы получить итоговое значение режима, который вы хотите задать для. своего файла, определите требуемый набор разрешений и сложите соответствующие числа в левой колонке таблицы.
Обратимся к примеру файла, который рассматривался ранее:
-rw‑r--r-- 1 dave admin 0 Feb 19 22:05 myfile
Его строка режима эквивалентна числу 644, сформированного таким образом:
право чтения и записи для владельца | -400+200=600 |
+ | |
право чтения для группы | 040 |
+ | |
право чтения для других пользователей | 004 |
=644 |
1
Если символ t установлен для каталога, то это означает, что только владелец файлов, содержащихся в данном каталоге, может удалять их, даже если член группы имеет те же права, что и владелец файла.
Если символ t установлен для исполняемого файла (программы или сценария), то после завершения программы ее следует оставить на диске подкачки (в виртуальной памяти), чтобы ускорить последующий ее запуск другими пользователями. Поскольку в наши дни проблема оперативной памяти не стоит так остро, как раньше, в использовании sticky–бита при работе с файлами нет особой необходимости.