Какие атрибуты файла определяют "право доступа".
Все юзеры для каждого файла (или директории) делятся на три категории
- владелец (или хозяин) этого файла
- группа "особо допущенных" к этому файлу
- все остальные.
Это означает, что можно установить три различных "допуска" (набора прав доступа) для каждого файла или директории. Один такой набор будет
определять права юзера, который является владельцем файла, другой набор
будет определять права для юзеров, которые входят в некую группу, но не
являются владельцами и, наконец, третий набор устанавливает права для
всех остальных юзеров, которые не входят в эту группу "особо допущенных"
и не являются владельцем файла.
Следовательно, у каждого файла (директории) есть три атрибута, которые хранятся где-то в заголовке файла и регулируют доступ к нему.
Конечно, атрибутов у файла не три, а больше. К атрибутам можно отнести
имя файла, его размер, время создания и т.п. Но в данном случае нас
интересуют только эти три.
Итак.
В заголовок файла записывается идентификатор юзера (userID),
который считается его владельцем. Заметьте, что "хозяином" может быть
только один определенный юзер.
Кроме того, в атрибуты записывается идентификатор группы (groupID), который и определяет ту группу "особо допущенных" о которой говорилось
выше. Каждая такая группа (ее название, числовой идентификатор - groupID и
состав) определяется администратором системы. То есть "рядовой" юзер,
даже если он и является хозяином файла, не может произвольно составить
список "близких друзей", которым он доверяет особые права в отношении
к своему файлу. Он может только выбрать подходящую группу из имеющихся
(и то, только если он сам входит в эту группу). Подробнее создании и
изменении групп юзеров смотри в
"Как поменять принадлежность юзера к группе (группам)?".
И, наконец, в атрибутах файла есть некий набор битов или "флажков", который и указывает - кто и что может проделать с этим файлом.
Этот набор называется permissions, что можно перевести как "допуски"
или "права на доступ".
Самое время, рассмотреть конкретный пример.
Если у вас уже есть под рукой какой-нибудь Unix, наберите команду
ls -l
(аналог команда dir в MS DOS)
и вы увидите несколько строчек типа
-rw-r--r-- 1 pascal users 4297 13 мар 21:45 file1
-rw-r--r-- 1 pascal users 1502 13 мар 22:09 file2
-rw-r--r-- 1 pascal users 5354 12 мар 20:11 filt3
\________/ \____/ \___/ \__/ \__________/ \___/
"права" владелец группа длина дата имя файла
В третьей колонке вы видите имя (login name) юзера - "хозяина"
этих файлов (в данном случае это - pascal). В четвертой колонке -
название группы, приписанной также к этим файлам (в данном случае - users).
И, наконец, в самой первой колонке (набор знаков типа "r", "w" и "-") сами permissions для всех трех категорий пользователей.
Надо заметить, что в самом заголовке файла хранятся, не имена
юзеров и групп, а их числовые номера, а "права", на самом деле,
представляют собой не цепочку букв, а набор двоичных битов.
Просто команда ls изображает их в более "человеческом" виде.
Далее...Собственно "права доступа".
Иван Паскаль pascal@tsu.ru