- •Раздел 8. Системное программное обеспечение для управления файлами
- •8.1. Общая характеристика системы управления файлами
- •8.1.1. Понятия и определения
- •8.1.2. Основная функция системы управления файлами
- •8.1.3. Иерархическая модель файловой системы
- •8.2. Логическая организация файлов
- •8.2.1. Общие принципы логической организации файлов
- •8.2.2. Последовательная организация
- •8.2.3. Индексная организация
- •Операция закрытия
- •8.5. Управление доступом к объектам операционных систем
- •Дискреционный метод контроля доступа
- •Мандатный метод контроля доступа
- •3. Os api для управления безопасностью объектов
- •Раздел 8
Операция закрытия
Windows:
BOOL CloseHandle(
HANDLE идентификатор файла
);
Linux:
int close(
int идентификатор файла
);
Чтение
Windows:
BOOL ReadFile(
HANDLE идентификатор файла,
LPVOID буфер для чтения,
DWORD число байтов для чтения,
LPDWORD число прочитанных байтов,
LPOVERLAPPED структура перекрытия
);
Linux:
int read(
int идентификатор файла,
void * буфер для чтения,
int число байтов для чтения
);
Запись
Windows:
BOOL WriteFile(
HANDLE идентификатор файла,
LPVOID буфер для записи,
DWORD число байтов для записи,
LPDWORD число записанных байтов,
LPOVERLAPPED структура перекрытия
);
Linux:
int write(
int идентификатор файла,
void * буфер для записи,
int число байтов для записи
);
8.5. Управление доступом к объектам операционных систем
С любой современной операционной системой могут работать многие пользователи. Они могут работать как одновременно (Linux), так и поочередно (Linux, Windows).
Поэтому естественным является желание защитить данные одних пользователей от доступа к ним других пользователей.
В общем виде взаимодействие пользователей (их часто называют субъектами) с данными (их часто называют объектами) иллюстрируется следующей схемой:
В качестве основных методов разграничения доступа в настоящее время используются следующие методы:
Дискреционный метод контроля доступа;
Мандатный метод контроля доступа.
Используется еще ролевая модель разграничения доступа, являющаяся, с одной стороны, усовершенствованием дискреционной модели доступа, а, с другой стороны, обладающая отдельными свойствами мандатной модели разграничения доступа.
Суть ролевой модели состоит в следующем: для ролей прописывают режимы доступа к объектам, а пользователям приписывают роли. Таким образом, пользователь получает права доступа к объекту, соответствующие его роли.
Традиционным является дискреционный метод контроля доступа.
Дискреционный метод контроля доступа
Дискреционный метод контроля доступом предполагает наличие матриц доступа. Поэтому такой метод называют еще и матричным методом.
Концептуально матрица доступа имеет следующий вид:
|
O1 |
O2 |
… |
Oj |
… |
Om |
S1 |
R |
R,W |
|
Е |
|
R |
S2 |
R, W |
- |
|
R |
|
Е |
... |
|
|
|
|
|
|
Si |
R |
- |
|
- |
|
R |
... |
|
|
|
|
|
|
Sn |
R, W |
- |
|
Е |
|
Е |
Здесь Si — это субъекты доступа, Oj — это объекты доступа. На пересечении строки i и столбца j перечислены операции, которые разрешено субъекту Si выполнять с объектом Oj. Чаще всего рассматриваются операции R — чтение, W — запись, E (X) — выполнение.
Очевидно, что субъектов может быть много, а объектов может быть очень много. Отсюда появляются группы. Т. е. права на действия с объектом могут даваться группе субъектов (пользователей). Это позволяет уменьшать размерности матриц доступа.
Встает вопрос, кто назначает права доступа в эту матрицу.
И здесь появляется понятие «владелец» объекта. Обычно владельцем объекта является пользователь, который создал этот объект.
Помимо владельца-пользователя объекта существует и группа пользователей. Тогда включение некоторого пользователя в эту группу дает ему права доступа к объекту (в рамках прав доступа группы).
Особым пользователем является суперпользователь, обладающий неограниченными правами доступа к объектам, в том числе и назначения прав доступа другим пользователям.
На практике для назначения прав доступа используется комбинация, т. е. владелец и суперпользователь могут назначать права доступа.
В Linux-подобных системах используется команда chmod, которая позволяет управлять правами доступа (чтение, запись, выполнение) к объекту (файлу) следующим субъектам:
Владельцу;
Группе;
Остальным пользователям.