создание и разработка веб-сайтов
поисковая оптимизация и реклама
статьи о программировании и веб-дизайне

Ссылки по теме:
 

О природе прав доступа

Идентификатор пользователя
Когда Вы регистрируетесь в системе, Вашей сессии присваивается идентификатор пользователя (UID или User ID). В Unix — это целое число, большее нуля, для всех пользователей кроме администратора, которому присваивается идентификатор пользователя UID=0, означающее ничем не ограниченные права. Для удобства числовые идентификаторы связаны с буквенными именами пользователя. Администратор имеет права пользователя root.

По идентификатору пользователя система определяет, какие действия разрешено или запрещено производить данному пользователю с определенным UID.

Идентификатор группы
Любой пользователь в свою очередь входит в группу (GID или Group ID). Группе также назначаются свои права.

Доступ к файлу
Любой файл имеет специальный атрибут — идентификатор пользователя владельца файла (т.е. пользователя создавшего файл). Т.е. если Вы (пользователь) создали файл, то Вы можете делать с ним, что хотите, менять атрибуты, удалять или дописывать данные. Однако удалить сам файл или изменить его имя Вы сможете не всегда, для этого у Вас должны быть права на изменение родительского каталога.

Права доступа
Вот мы наконец и добрались до прав доступа. Кроме идентификаторов владельца и группы, каждый файл имеет права доступа, которые определяют, какие действия разрешено выполнять владельцу, пользователю с идентификаторм пользователя UID и правами группы GID, совпадающему с GID файла, и всем остальным пользователям.

Действия, назначаемые файлу:

r(read) — чтение
w(write) — запись
x(execute) — исполнение


Таким образом, права доступа назначаются при помощи девяти символов. Три символа для пользователя файла, три для группы и три для всех остальных.


User | Group| All other
rwx | rwx | rwx


Или коротко rwxrwxrwx
Если какой-то из флагов не установлен, то вместо него отображается прочерк: rwxr–xr–x

Числовое представление прав доступа

Для облегчения назначения прав доступа, они имеют числовое представление. При этом каждой из трех троек присваивается число от 0 до 7, что соответствует восьмеричной системе исчисления.


Чтению файла (read) соответствует вес 4;
Записи файла (write) соответствует вес 2;
Исполнению файла (execute) соответствует вес 1;


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


rwxrwxrwx= (4*1+2*1+1*1) (4*1+2*1+1*1) (4*1+2*1+1*1)=777
rwxr-xr-x= (4*1+2*1+1*1) (4*1+2*0+1*1) (4*1+2*0+1*1)=755
rwx------= (4*1+2*1+1*1) (4*0+2*0+1*0) (4*0+2*0+1*0)=700


Чтобы подчеркнуть восьмеричную природу числа, в PHP и Perl программах перед числом пишут 0 ( т.е. 0777, 0755 и т.д.)


4 декабря 2007 года
Тимур Иванов