Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга high-end по ОС-new.doc
Скачиваний:
99
Добавлен:
13.05.2015
Размер:
2.13 Mб
Скачать

Имена файлов

modern.txt

win.exe

class. dbf

unix.ppt

kira

читать

выполнять

выполнять

genua

читать

выполнять

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

nataly

читать

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

victor

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

создать


Имена

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

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

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

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

Процесс

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

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. Проверка прав доступа

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

5.8.3. Организация контроля доступа в ос unix

В ОС UNIX права доступа к файлу или каталогу определяются для трех субъек­тов:

владельца файла (идентификатор User ID, UID);

членов группы, к которой принадлежит владелец (Group ID, GID);

всех остальных пользователей системы.

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

User Group Other

rwx r-х r--

Здесь r, w и х обозначают операции чтения, записи и выполнения соот­ветственно. Именно в таком виде выводит информацию о правах доступа к файлам команда просмотра содержимого каталога (ls -la). Суперпользователю UNIX все виды досту­па позволены всегда, поэтому его идентификатор (он имеет значение 0) не фигу­рирует в списках управления доступом.

С каждым процессом UNIX связаны два идентификатора: пользователя, от име­ни которого был создан этот процесс, и группы, к которой принадле­жит данный пользователь. Эти идентификаторы носят название реальных идентификаторов пользователя (Real User ID, RUID) и реальных идентифи­каторов группы (Real Group ID, RGID). Однако при проверке прав доступа к файлу используются не эти идентификаторы, а так называемые эффектив­ные идентификаторы пользо­вателя (Effective User ID, EUID) и эффективные идентификаторы группы (Effective Group ID, EGID) (рис. 5.18).

Введение эффективных идентификаторов позволяет процессу выступать в неко­торых случаях от имени пользователя и группы, отличных от тех, ко­торые ему досталось при порождении. В исходном состоянии эффективные идентификаторы совпадают с реальными.

В ОС UNIX случаи, когда процесс выполняет системный вызов ехес за­пуска приложения, хра­нящегося в некотором файле, связаны с заменой про­цессом исполняемо­го кода. В рамках данного процесса начинает выпол­няться новый код, и если в характеристиках безопасности этого файла ука­заны признаки разрешения смены идентификаторов пользователя и группы, то происходит смена эффективных иден­тификаторов процесса. Файл имеет два признака разрешения смены идентифи­катора – Set User ID on execution (SUID) и Set Group ID on execution (SGID).