Разграничение доступа к объектам в операционной системе Unix: вектор доступа к файлу и его состав, виды доступа, дополнительные биты в векторе доступа

- Разграничение доступа к объектам в операционных системах семейства Unix – файлам, каталогам, связям и специальным файлам (символьным или блочным устройствам ввода-вывода и именованным каналам) – осуществляется на основе хранящихся в индексе соответствующего объекта сведений о владельце объекта (UID) и его группе (GID), а также векторе доступа к объекту.

- Индекс файла – его управляющий блок, хранящийся в области индексов, отделенной от области файлов.

Структура каталога

Каталог – файл, состоящий из записей, соответствующих включенным в каталог файлам. Каждая запись состоит из номера индекса, связанного с данным файлом, и имени файла. Возможно создание множества файлов, связанных с одним и тем же индексом, т.е. с одной и той же областью внешней памяти (с помощью так называемых ссылок).

Вектор доступа

Представляет собой список контроля доступа фиксированной (а не произвольной, как в ОС Windows) длины. Первый элемент списка определяет права доступа к объекту его владельца, второй – членов его первичной группы, а третий – всех остальных пользователей системы. Суперпользователь root имеет полный доступ ко всем объектам в системе. Каждый элемент вектора доступа имеет длину 3 или 4 бита.

Виды доступа к объекту

- Возможны три вида доступа к объекту: чтение (r), запись (w) и выполнение (x). Для каталогов запись определяет создание, переименование и (или) удаление файлов, а выполнение – поиск файла в каталоге по заданному имени.

- Пример вектора доступа к файлу:

rwxr-xr--(или 0754 в восьмеричной форме)

(владелец файла имеет право на полный доступ к нему, члены группы владельца – на чтение и выполнение файла, а все остальные пользователи – только на чтение файла).

Надежность разграничения доступа к объектам в Unix

Для того чтобы без использования системных команд изменить права доступа к объекту для конкретного пользователя, необходимо иметь доступ к области индексов файловой системы, которые определены в специальном файле (например, / dev / root). Но индекс этого файла также хранится в области индексов. Поэтому, если не изменять права доступа ко всем системным объектам, которые заданы по умолчанию при установке операционной системы (что может сделать только суперпользователь), то можно гарантировать безопасность работы подсистемы разграничения доступа.

Дополнительные биты в элементах управления доступом

Если четвертый бит установлен в элементе вектора для владельца файла (SUID), то программный файл будет выполняться в сеансе любого пользователя с правами владельца этого файла. Это необходимо, например, при вызове команды passwd пользователем для изменения своего пароля. Обычный пользователь может иметь право смены своего пароля, но не может иметь право записи в файл паролей.

Если четвертый бит установлен в элементе вектора доступа для членов группы владельца (SGID), то данный программный файл будет выполняться в сеансе любого пользователя с правами членов группы владельца данного файла. Если SGID установлен в векторе доступа к каталогу, то все создаваемые пользователем файлы в этом каталоге будут иметь такой же идентификатор группы владельца, как и у каталога.

Если четвертый бит установлен в элементе вектора доступа для всех остальных пользователей (Sticky), то операционная система создает специальный текстовый образ программного файла. Чаще этот бит используется для каталогов и определяет запрет на удаление или переименование файлов других пользователей в этом каталоге. Это особенно важно для каталогов /tmp и /usr/tmp, чтобы одни пользователи не могли повредить работе других. Бит Sticky для каталогов может быть установлен только администратором.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: