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 myfilerw‑rw‑rw-Отмена всех разрешений на выполнение
chmod og‑w myfilerw‑r--r--Отмена разрешений на запись для группы и других пользователей
chmod g+w myfilerw‑rw‑r--Добавление разрешения на запись для группы
chmod u+x myfilerwxrw‑r--Добавление разрешения на выполнение для владельца
chmod go+x myfilerwxrwxr‑xДобавление разрешения на выполнение для группы и других пользователей
chmod g=o myfilerwxr‑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. Определение режима доступа к файлу


ВладелецГруппаДругие пользователи
rwxrwxrwx
4 + 2 + 14+2+14+2+1

1.4.4. Дополнительные примеры использования команды chmod

Ниже приведен ряд Примеров, иллюстрирующих применение команды chmod в абсолютном режиме:


КомандаСтрока режимаРезультат
chmod 666rw‑rw‑rw-Установка разрешений на чтение и запись для владельца, группы и других пользователей
chmod 644rw‑r--r--Установка разрешений на чтение и запись для владельца; группа и остальные пользователи получают право чтения
chmodrwxr--r--Предоставление полного доступа владельцу; группа и другие пользователи имеют право чтения
744
chmodrw‑rw‑r--Установка разрешений на чтение и запись для владельца и группы; другим пользователям предоставляется право чтения
664
chmodПредоставление полного доступа только владельцу; остальным пользователям доступ запрещен
700
chmodr--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

Если другим пользователям также нужно дать разрешение на чтение, воспользуйтесь такой командой: