Все файлы в Unix имеют двух владельцев (пользователь и группа пользователей). Пользователь владеющий файлом может не принадлежать к группе владеющей файлом.
>ls -l
Выводит полную информации о каталоге.
Права на файл назначаются владельцем файла. Владельцем созданного файла назначается идентификатор пользователя того процесса который создал файл. Правило назначения группы: в большинстве ОС группой владельцем становится первичная группа пользователя, которая инициировала создание файла. Владение файлом определяют набор операций, которые пользователь может совершить с файлом. Некоторые действия над файлом (изменение прав доступа или изменение владельца файла) может определять только владелец файла или root. Но ряд других операций (чтение, запись) отдельно определены для разных категорий пользователей.
В ОС Unix существует три базовых класса доступа к файлу:
- пользователь, владеющий файлом;
- пользователь, относящийся к группе владеющей файлом;
- остальные (остальные кроме root).
И для каждого класса устанавливаются 3 типа прав доступа:
- чтение;
- запись;
- выполнение.
Пример:
- rwx r-x rw-
Владелец группа остальные
Команда интерпретатор:
Пример:
>chmod a+w text1.t
>chmod g+x-w file1.c; prog2.c
>chmod u+w,og+r-w prog1.c
>chmod 755 file3.t
где d - каталог
p - FIFO
b - блочно-ориентированное устройств ввода вывода.
с - символьно-ориентированное устройство ввода вывода.
Для просмотра содержимого необходимо w. Для изменения содержимого необходимо r. Для запуска на выполнение необходимо x.
Интерпретация прав доступа по отношению к каталогу
Право чтения каталога позволяет получить только имена файлов находящихся в этом каталоге. Для подробной информации необходимо обращаться к метаданным файла, а это требует права на выполнение по отношению к каталогу. Права на запись по отношению к каталогу необходимо при создании и удалении файла. При этом не учитываются права доступа к самому файлу.
Порядок действия ОС при проверке прав доступа.
При инициализации действий над файлом выполняется проверка прав доступа:
Если это root действие разрешается и дополнительной проверки не производится.
Если действие запрашивается владельцем файла, то проверяется наличие права на запрашиваемое действие.
Если действие запрашивается пользователем, входящим в группу владеющую файлом, то проверяется наличие права на запрашиваемое действие.
Если действие запрашивается другим пользователем, то проверяется наличие права на запрашиваемое действие.