Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UNIX.doc
Скачиваний:
0
Добавлен:
08.01.2020
Размер:
10.6 Mб
Скачать

Пользователи и группы

В UNIX роль номинального субъекта безопасности играет пользователь. Каждому пользователю выдается (обычно — одно) входное имя (login). Каждому входному имени соответствует единственное число, идентификатор пользователя (User IDentifier, UID). Это число и есть ярлык субъекта (номинальный субъект), которым система пользуется для определения прав доступа.

Каждый пользователь входит в одну или более групп. Группа — это список пользователей системы, имеющий собственный идентификатор (Group IDentifier, GID). Поскольку группа объединяет несколько пользователей системы, в терминах политики безопасности она соответствует понятию множественный субъект. Значит, GID — это ярлык множественного субъекта, которых у номинального субъекта может быть более одного. Таким образом, одному UID соответствует список GID.

Роль действительного (работающего с объектами) субъекта играет процесс. Каждый процесс снабжен единственным UID: это идентификатор запустившего процесс номинального субъекта, т. е. пользователя. Процесс, порожденный некоторым процессом пользователя, наследует его UID[1]. Таким образом, все процессы, запускаемые по желанию пользователя, будут иметь его идентификатор. UID учитываются, например, когда один процесс посылает другому сигнал. В общем случае разрешается посылать сигналы «своим» процессам (тем, что имеют такой же UID).

Права доступа

Роль основного объекта доступа в UNIX играют объекты файловой системы. В архитектуре UNIX в файловой системе представлены не только обычные файлы с данными, там присутствуют и специальные файлы для устройств, каналов, сокетов и т. д. Благодаря этому регулирование доступа к файлам позволяет покрыть очень широкий спектр ситуаций доступа и служит основным средством организации политики доступа в UNIX.

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

На уровне файловой системы в UNIX определяются три вида доступа: чтение (read, r), запись (write, w) и использование (execution, x). Право на чтение из файла дает доступ к содержащейся в нем информации, а право записи — возможность ее изменять. Право использования трактуется по-разному в зависимости от типа файла. В случае обычного файла оно означает возможность исполнения файла, т. е. запуска программы или командного сценария, содержащихся в этом файле. Для каталога использование — это возможность доступа к файлам этого каталога (точнее говоря, к атрибутам этих файлов — имени, правам доступа и т. п.).

При каждом файле имеется ярлык, в котором зафиксированы права доступа к нему. Права доступа включают список из девяти пунктов (три тройки): по три вида доступа для трех групп — пользователя-владельца, группы-владельца и всех остальных. Каждый пункт в этом списке может быть либо разрешён, либо запрещён (равен 0 либо 1). Таким образом, для хранения этой информации о правах доступа достаточно 9 бит.

Рисунок 2.17. Базовые права доступа в UNIX

При обращении процесса к файлу (с запросом доступа определённого вида, т. е. на чтение, запись или исполнение) система проверяет совпадение идентификаторов владельцев процесса и владельцев файла в определённом порядке, и в зависимости от результата, применяет ту или иную группу прав. Рассмотрим последовательность проверки прав на примере (см. Рисунок 2.18, «Последовательнось проверки прав доступа в UNIX»). Пусть файл имеет следующие атрибуты:

file.txt alice:users rw- r-- ---

Т. е. файл принадлежит пользователю «alice», группе «users» и имеет права на чтение и запись для владельца, и только на чтение для группы, для всех остальных не разрешается никакой вид доступа.

Презентация 5-06: последовательность проверки

Пусть к файлу обращается с запросом на чтение процесс, владельцем которого является пользователь bob. Bob не является владельцем данного файла, однако он является членом группы [users]. Значит, он имеет права на чтение этого файла.

Строго говоря, при этом проверяется не собственно идентификатор пользователя процесса (UID), а т. н. исполнительный идентификатор пользователя, EUID. Он существует в связи с тем, что в ходе выполнения процесс может менять субъект, от имени которого он исполняется. Подробнее об этом сказано в разделе «Подмена идентификатора процесса».

Рисунок 2.18. Последовательнось проверки прав доступа в UNIX

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]