Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 семестр / ПОС / 4. Безопасность операционной системы UNIX.doc
Скачиваний:
81
Добавлен:
28.03.2015
Размер:
199.68 Кб
Скачать

Недостатки базовой модели доступа и её расширения

Ограниченность системы прав UNIX приводит к тому, что, к примеру, невозможносоздать такое положение вещей, когда одна группа пользователей могла бы только читать из файла, другая – только запускать его, а всем остальным файл вообще не был бы доступен.

Со временем в различных версиях UNIX стали появляться расширения прав доступа, позволяющие устанавливать права на отдельные объекты системы. Поначалу это были так называемые флаги – дополнительные атрибуты файла, не позволяющие, например, переименовывать его или удалять из него информацию при записи (можно только дописывать). Флаги не устраняют главного недостатка, зато их легко организовать без изменения файловой системы: каждый флаг занимает ровно один бит.

Многие современные файловые системы UNIX поддерживают также списки доступа(ACL), с помощью которых можно для каждого объекта задавать права всех субъектов на доступ к нему.

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

Суперпользователь

Пользователь root (он же суперпользователь) имеет нулевые UID и GID и играет рольдоверенного субъекта UNIX. Это значит, что он не подчиняется законам, которые управляют правами доступа, и может по своему усмотрению эти права изменять. Большинство настроек системы доступны для записи только суперпользователю.

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

Системное администрирование в UNIX производится от имени пользователя root. При работе от этого имени следует быть очень осторожным: выполнение неверной команды может привести к краху системы и уничтожению информации. Поэтому даже администраторы никогда не работают в сеансе суперпользователя всё время, а переходят в режим суперпользователя только тогда, когда это действительно необходимо (например, с помощью командыsu).

Аутентификация пользователей

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

  1. процесс gettyожидает реакции пользователя на одной из терминальных линий, в случае активности пользователя выводит приглашение;

  2. после ввода имени пользователя запускается программа login, которая проверяет подлинность пользователя. Стандартным механизмом является проверкапароля, заданного для данного пользователя;

  3. убедившись, что пароль введён правильно, loginзапускает командный интерпретатор с установленными UID и GID данного пользователя. Таким образом, права доступа любой программы (действительного субъекта), запущенной пользователем в этом сеансе работы, будут определяться правами номинального субъекта UID+GID.

Рисунок 4.3. Процесс входа в систему

При работе по сети роль gettyисполняет сетевой демон, напримерssh.

В некоторых современных UNIX-системах существуют расширения систем авторизации и аутентификации. Например, в Linux-системах этот механизм называется подключаемые модули аутентификации(Pluggable Authentication Modules, PAM). Эти средства выходят за рамки данных лекций.