Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект ОС(темы1_5).DOC
Скачиваний:
110
Добавлен:
27.05.2015
Размер:
2 Мб
Скачать

5. 8. 2. Механизм контроля доступа

Каждый пользователь и каждая группа пользователей обычно имеют символьное имя, а также уникальный числовой идентификатор. При выпол­нении процедуры логического входа в систему пользователь сообщает свое символьное имя и па­роль, а операционная система определяет соответст­вующие числовые иденти­фикаторы пользователя и групп, в которые он вхо­дит. Все идентификационные данные, в том числе имена и идентификаторы пользователей и групп, пароли пользователей, а также сведения о вхождении пользователя в группы хранятся в специальном файле (файл /etc/passwd в UNIX) или специальной базе данных (в Windows NT).

Вход пользователя в систему порождает процесс-оболочку, который поддер­живает диалог с пользователем и запускает для него другие процессы. Процесс-оболочка получает от пользователя символьное имя и пароль и на­ходит по ним числовые идентификаторы пользователя и его групп. Эти иден­тификаторы свя­зываются с каждым процессом, запущенным оболочкой для данного пользова­теля. Говорят, что процесс выступает от имени данного пользователя и данных групп пользователей. В наиболее типичном случае любой порождаемый процесс наследует идентификаторы пользователя и группы от процесса родителя. Определить права доступа к ресурсу – значит определить для каждого пользова­теля набор операций, которые ему разре­шено применять к данному ресурсу. В разных операционных системах для одних и тех же типов ресурсов может быть определен свой список диффе­ренцируемых операций доступа.

Для файло­вых объектов этот список может включать следующие операции:

создание файла;

уничтожение файла;

открытие файла;

закрытие файла;

чтение файла;

запись в файл;

дополнение файла;

поиск в файле;

получение атрибутов файла;

установка новых значений атрибутов;

переименование;

выполнение файла;

чтение каталога;

смена владельца;

изменение прав доступа.

Набор файловых операций ОС может состоять из большого количества эле­ментарных операций, а может включать всего несколько укрупненных операций. Приведенный выше список является примером первого подхода, который позво­ляет весьма тонко управлять правами доступа пользователей, но создает значи­тельную нагрузку на администратора. Пример укрупненного подхода демонст­рируют операционные системы семейства UNIX, в которых существуют всего три операции с файлами и каталогами: читать (read, r), писать (write, w) и вы­полнить (execute, x). Хотя в UNIX для операций ис­пользуется всего три назва­ния, в действительности им соответствует гораздо больше операций. Например, содержание операции выполнить зависит от того, к какому объекту она применя­ется. Если операция выполнить файл ин­туитивно понятна, то операция выпол­нить каталог интерпретируется как поиск в каталоге определенной записи. По­этому администратор UNIX, по сути, располагает большим списком операций, чем это кажется на первый взгляд.

В ОС Windows NT разработчики применили гибкий подход — они реа­лизовали возможность работы с операциями над файлами на двух уровнях: по умолчанию администратор работает на укрупненном уровне (уровень стандартных операций), а при желании может перейти на элементарный уро­вень (уровень индивидуаль­ных операций).

В самом общем случае права доступа могут быть описаны матрицей прав досту­па, в которой столбцы соответствуют всем файлам системы, строки — всем поль­зователям, а на пересечении строк и столбцов указыва­ются разрешенные опера­ции (рис. 5. 16).

Практически во всех операционных системах матрица прав доступа хра­нится «по частям», то есть для каждого файла или каталога создается так на­зываемый список управления доступом (Access Control List, ACL), в котором описываются права на выполнение операций пользователей и групп пользо­вателей по отноше­нию к этому файлу или каталогу. Список управления дос­тупа является частью характеристик файла или каталога и хранится на диске в соответствующей об­ласти, например в индексном дескрипторе inode фай­ловой системы ufs. He все файловые системы поддерживают списки управ­ления доступом, например, его не поддерживает файловая система FAT, так как она разрабатывалась для одно­пользовательской однопрограммной опера­ционной системы MS-DOS, для кото­рой задача защиты от несанкциониро­ванного доступа не актуальна.

modern.txt

win.exe

class. dbf

unix.ppt

kira

читать

выполнять

выполнять

genua

читать

выполнять

выполнять читать

nataly

читать

выполнять читать

victor

Читать писать

создать

Имена файлов

Имена

пользовате­лей

Рис. 5. 16. Матрица прав доступа

Обобщенно формат списка управления досту­пом можно представить в виде на­бора идентификаторов пользователей и групп пользователей, в котором для каж­дого идентификатора указывается набор разрешенных операций над объектом (рис. 5. 17). Говорят, что список ACL состоит из элементов управления доступом (Access Control Element, АСЕ), при этом каждый элемент соответствует одному идентификатору. Список ACL с добавленным к нему идентификатором владель­ца называют характеристиками безопасности.

В приведенном на рисунке примере процесс, который выступает от имени поль­зователя с идентификатором 3 и групп с идентификаторами 14, 52 и 72, пытается выполнить операцию записи (W) в файл. Файлом владеет пользователь с идентификатором 17. Операционная система, получив запрос на запись, находит характеристики безопасности файла (на диске или в бу­ферной системной облас­ти) и последовательно сравнивает все идентифика­торы процесса с идентифика­тором владельца файла и идентификаторами пользователей и групп в элементах АСЕ. В данном примере один из иденти­фикаторов группы, от имени которой выступает процесс, а именно 52, совпа­дает с идентификатором одного из элемен­тов АСЕ. Так как пользователю с идентификатором 52 разрешена операция чте­ния (признак W имеется в на­боре операций этого элемента), то ОС разрешает процессу выполнение опе­рации.

Описанная обобщенная схема хранения информации о правах доступа и проце­дуры проверки имеют в каждой операционной системе свои особенно­сти, ко­торые рассматриваются далее на примере операционных систем UNIX и Win­dows NT.

ID = 3

ID = 14

ID = 52

ID= 72

Процесс

Пользователь Группа Группа Группа

Файл

Совпадение

Владелец

ACE

ACE

ACE

ACE

.

.

ACE

R

W

X

P

O

ID = 17

R

C

X

ID = 31

R

W

ID = 46

X

R

W

Р

ID = 52

ис. 5.18. Про­верка прав доступа

R

D

ID = 106

Рис. 5. 17. Проверка прав доступа