Linux и UNIX: программирование в shell. Руководство разработчика. - страница 5
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.4. Определение режима доступа к файлу
Владелец | Группа | Другие пользователи |
rwx | rwx | rwx |
4 + 2 + 1 | 4+2+1 | 4+2+1 |
1.4.4. Дополнительные примеры использования команды chmod
Ниже приведен ряд Примеров, иллюстрирующих применение команды chmod в абсолютном режиме:
Команда | Строка режима | Результат |
chmod 666 | rw‑rw‑rw- | Установка разрешений на чтение и запись для владельца, группы и других пользователей |
chmod 644 | rw‑r--r-- | Установка разрешений на чтение и запись для владельца; группа и остальные пользователи получают право чтения |
chmod | rwxr--r-- | Предоставление полного доступа владельцу; группа и другие пользователи имеют право чтения |
744 | ||
chmod | rw‑rw‑r-- | Установка разрешений на чтение и запись для владельца и группы; другим пользователям предоставляется право чтения |
664 | ||
chmod | Предоставление полного доступа только владельцу; остальным пользователям доступ запрещен | |
700 | ||
chmod | r--r--r-- | Все пользователи получают разрешение только на чтение |
444 |
В качестве примера изменим права доступа к файлу myfile:
>-rw‑r–r-- 1 dave admin 0 Feb 19 22:05 myfile
Необходимо, чтобы владелец имел полный доступ к файлу, а пользователи группы — только разрешение на чтение. Для этого введите следующую команду:
>$ chmod 740 myfile
>$ ls -l myfile
>-rwxr 1 dave admin 0 Feb 19 22:05 myfile
Если другим пользователям также нужно дать разрешение на чтение, воспользуйтесь такой командой: