Выбрать главу

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–бита при работе с файлами нет особой необходимости.