Основы операционной системы UNIX

       

Символьное представление изменения прав доступа


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

[пользователи] оператор [права]

Компонент пользователи определяет, для кого задаются или изменяются права. Он может иметь значения u, g, o и a, задающие изменения прав для владельца, группы, прочих пользователей и всех категорий пользователей. Если пользователи не указаны, права изменяются для всех категорий пользователей. Однако при этом не переопределяются установки, задаваемые маской создания файлов (umask).

Компонент оператор может иметь значения +, - или =, означающие добавление, отмену права доступа и установку в точности указанных прав, соответственно. Если после оператора = права не указаны, все права доступа для соответствующих категорий пользователей отменяются.

Компонент права задается в виде любой совместимой комбинации следующих символов:

r

право на чтение

w

право на запись

x

право на выполнение

l

блокирование изменения прав доступа

s

выполнение с эффективным идентификатором владельца или группы-владельца

t

клейкий бит

Не все сочетания символов для компонента пользователи и компонента права допустимы. Так, s можно задавать только для u или g, а t - только для u. Права x и s не совместимы с l и т.д.

Изменения прав доступа в списке выполняются последовательно, в порядке их перечисления.

Рассмотрим пример изменения прав доступа:

[kravchuk@arturo 10:51:43 /]$ cd /tmp [kravchuk@arturo 10:51:46 /tmp]$ >f1.txt [kravchuk@arturo 10:52:01 /tmp]$ chmod +w f1.txt [kravchuk@arturo 10:52:13 /tmp]$ ls -l *.txt -rw-r--r-- 1 kravchuk 50 0 Мар 27 10:52 f1.txt [kravchuk@arturo 10:52:17 /tmp]$ chmod a+w f1.txt [kravchuk@arturo 10:52:32 /tmp]$ ls -l *.txt -rw-rw-rw- 1 kravchuk 50 0 Мар 27 10:52 f1.txt [kravchuk@arturo 10:52:33 /tmp]$ chmod u+x,g=x,o= f1.txt [kravchuk@arturo 10:53:18 /tmp]$ ls -l *.txt -rwx--x--- 1 kravchuk 50 0 Мар 27 10:52 f1.txt [kravchuk@arturo 10:53:20 /tmp]$ chmod ug-x,og+r,u=rwx f1.txt [kravchuk@arturo 10:54:46 /tmp]$ ls -l *.txt -rwxr--r-- 1 kravchuk 50 0 Мар 27 10:52 f1.txt [kravchuk@arturo 10:55:15 /tmp]$ chmod 644 f1.txt [kravchuk@arturo 10:55:23 /tmp]$ ls -l *.txt -rw-r--r-- 1 kravchuk 50 0 Мар 27 10:52 f1.txt

Рассмотрим еще один пример, показывающий значение и изменение прав доступа к каталогу:

[kravchuk@arturo 11:05:38 /tmp]$ ls -l | grep d1 drw-r--r-- 2 kravchuk 50 108 Мар 26 17:39 d1 [kravchuk@arturo 11:05:47 /tmp]$ cd d1 bash: cd: d1: Permission denied [kravchuk@arturo 11:05:57 /tmp]$ chmod 744 d1 [kravchuk@arturo 11:06:26 /tmp]$ cd d1 [kravchuk@arturo 11:06:27 /tmp/d1]$ cd .. [kravchuk@arturo 11:06:39 /tmp]$ chmod -w d1 [kravchuk@arturo 11:06:51 /tmp]$ cd d1 [kravchuk@arturo 11:06:58 /tmp/d1]$ ls f3.txt [kravchuk@arturo 11:06:59 /tmp/d1]$ rm f3.txt rm: f3.txt not removed: Permission denied



Содержание раздела