Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

субъектной модели

Работа добавлена на сайт samzan.net: 2016-03-30

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 5.5.2024

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

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

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

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

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

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

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

На уровне файловой системы в UNIX определяется три вида доступа: чтение (read, r), запись (write, w) и использование (execution, x). Право на чтение из файла дает доступ к содержащейся в нем информации, а право записи – возможность ее изменять. При каждом файле имеется список того, что с ним может делать владелец (если совпадает UID процесса и файла), член группы владельцев (если совпадает GID) и кто угодно (если ничего не совпадает). Такой список для каждого объекта системы занимает всего несколько байт.

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

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

Рассмотрим последовательность проверки прав на примере. Пусть файл имеет следующие атрибуты:

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

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

Пусть файл пытается прочитать пользователь «bob». Он не является владельцем, однако он является членом группы «users». Значит, он имеет права на чтение этого файла.

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

Разделяемые каталоги

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

Таким образом, из своего каталога пользователь может удалить любой файл. А если запись в каталог разрешена всем, то любой пользователь сможет удалить в нём любой файл. Для избежания этой проблемы был добавлен ещё один бит в права доступа каталога: бит навязчивости(sticky, t-бит). При его установке пользователь, имеющий доступ на запись в этот каталог, может изменять только собственные файлы.

Подмена идентификатора субъекта

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

Для разрешение подмены идентификатора пользователя применяется бит подмены идентификатора пользователя (set user id, suid-бит, s). Этот бит применяется совместно с битом исполнения (x) для обычных файлов. При установке этого бита на исполняемый файл процесс запускается от имени владельца, а не от имени запускающего пользователя.

Подмена идентификатора пользователя является потенциальной угрозой безопасности системы и должна использоваться осторожно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




1. Тема Джордж Вашингтон Работу выполнила Земцова Екатерина
2. 00 Степ аэробика Татьяна Степ аэробика Татьяна Степ а
3. Box tops
4. Товаром 2010 года в номинации Прорыв в области восстановления и выпрямления волос с помощью нанотехнологий
5. 13 січня 2014 року про проходження виробничої практики студентами Дзигаленко С
6.  5331 тыс тг Рисунок 2
7. государственного социализма
8. Волонтерство
9. реферат дисертації на здобуття наукового ступеня доктора сільськогосподарських наук
10. 122013 [Жирным шрифтом выделены фрагменты которые не записались на диктофон и восстановлены по памяти
11. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата історичних наук Харків ~
12. Право Напрям підготовки спеціальність 6
13. Методические рекомендации Содержание родительских уголков Старший воспитат
14.  После Великой Октябрьской Социалистической Революции старожилами города Николаева передаются легенды о
15. Игры для детей в помощь вожатому
16. КАФЕДРА ХИРУРГИИ И ОНКОЛОГИИ С КУРСАМИ ОНКОЛОГИИ И ПАТОЛОГИЧЕСКОЙ АНАТОМИИ ИПО
17. Алкогольные психозы
18. реферат дисертації на здобуття наукового ступеня кандидата філософських наук1
19. ТЕМА СПУТНИКОВОЙ СВЯЗИ
20. тема экологического законодательства