Права доступа
Роль основного объекта доступа в UNIX играют объекты файловой системы. В архитектуре UNIX в файловой системе представлены не только обычные файлы с данными, там присутствуют и специальные файлы для устройств, каналов, сокетов и т. д. Благодаря этому регулирование доступа к файлам позволяет покрыть очень широкий спектр ситуаций доступа и служит основным средством организации политики доступа в UNIX.
В соответствии с субъект-субъектной моделью каждый файл снабжен ярлыком, в котором хранятся идентификаторы номинальных субъектов, которые вправе распоряжаться доступом к данному файлу. В случае UNIX — это идентификатор пользователя-владельца (UID) и идентификатор группы-владельца (GID). Обратите внимание, что файл может принадлежать только одной группе, в то время как пользователь может входить в несколько групп.
На уровне файловой системы в UNIX определяются три вида доступа: чтение (read, r), запись (write, w) и использование (execution, x). Право на чтение из файла дает доступ к содержащейся в нем информации, а право записи — возможность ее изменять. Право использования трактуется по-разному в зависимости от типа файла. В случае обычного файла оно означает возможность исполнения файла, т. е. запуска программы или командного сценария, содержащихся в этом файле. Для каталога использование — это возможность доступа к файлам этого каталога (точнее говоря, к атрибутам этих файлов — имени, правам доступа и т. п.).
При каждом файле имеется ярлык, в котором зафиксированы права доступа к нему. Права доступа включают список из девяти пунктов (три тройки): по три вида доступа для трех групп — пользователя-владельца, группы-владельца и всех остальных. Каждый пункт в этом списке может быть либо разрешён, либо запрещён (равен 0 либо 1). Таким образом, для хранения этой информации о правах доступа достаточно 9 бит.
Рисунок 2.23. Базовые права доступа в UNIX
При обращении процесса к файлу (с запросом доступа определённого вида, т. е. на чтение, запись или исполнение) система проверяет совпадение идентификаторов владельцев процесса и владельцев файла в определённом порядке, и в зависимости от результата, применяет ту или иную группу прав. Рассмотрим последовательность проверки прав на примере (см. Рисунок 2.23, «Последовательнось проверки прав доступа в UNIX»). Пусть файл имеет следующие атрибуты:
file.txt alice:users rw- r-- ---
Т. е. файл принадлежит пользователю «alice», группе «users» и имеет права на чтение и запись для владельца, и только на чтение для группы, для всех остальных не разрешается никакой вид доступа.
Рисунок 2.24. Последовательнось проверки прав доступа в UNIX
Пусть к файлу обращается с запросом на чтение процесс, владельцем которого является пользователь bob. Bob не является владельцем данного файла, однако он является членом группы [users]. Значит, он имеет права на чтение этого файла.
Строго говоря, при этом проверяется не собственно идентификатор пользователя процесса (UID), а т. н. исполнительный идентификатор пользователя, EUID. Он существует в связи с тем, что в ходе выполнения процесс может менять субъект, от имени которого он исполняется.
- Unix-подобные операционные системы
- Часть 1. Введение в операционные системы unix 10
- Часть 2. Использование unix 44
- Unix-подобныеОс
- Термин «unix-подобный» и торговая марка unix
- Категории
- История развития ос unix
- Часть 1. Введение в операционные системы unix
- Основные концепции операционных систем Обзор компьютерных систем
- Назначение операционной системы
- Операционная система как виртуальная машина
- Операционная система как менеджер ресурсов
- Архитектура операционной системы
- Монолитная операционная система
- Микроядерная операционная система
- Классификация операционных систем по назначению
- Архитектура unix. Файлы и устройства Особенности архитектуры unix
- Два объекта unix: файлы и процессы
- Беглый взгляд на архитектуру unix
- Ядро unix
- Файловая система unix
- Особенности файловой системы
- Виртуальная файловая система
- Дерево каталогов
- Устройства и драйверы
- Архитектура unix. Процессы
- Управление памятью
- Управление процессами
- Контекст процесса
- Планирование процессов
- Создание новых процессов
- Процессы и потоки
- Межпроцессное взаимодействие
- Разделяемая память
- Переменные окружения
- Сигналы
- Часть 2. Использование unix Терминал и командная строка
- Терминал
- Управляющие символы
- Одновременный доступ к системе
- Командная строка
- Командная оболочка
- Приглашение
- Команды
- Параметры
- Шаблоны
- Перенаправление ввода и вывода
- Программное окружение
- Стандартные переменные окружения
- Служебные символы
- Процесс выполнения команды
- Возвращаемое значение
- Эффективное использование командной строки
- Редактирование командной строки
- История команд
- Автодополнение
- Средства объединения команд
- Справочная подсистема
- Страницы руководства
- Поиск по руководствам
- Программа info
- Документация, поставляемая с программой
- Интегрированные системы документации
- Введение в безопасность unix
- Основы информационной безопасности
- Политика безопасности
- Управление доступом
- Аутентификация и авторизация
- Концепции безопасности unix
- Пользователи и группы
- Права доступа
- Разделяемые каталоги
- Подмена идентификатора процесса
- Ограничения базовой модели доступа и её расширения
- Суперпользователь
- Аутентификация пользователей
- Управление пользователями и правами доступа База данных пользователей системы
- Изменение базы данных пользователей
- Изменение прав доступа
- Ограничения сеанса пользователя
- Литература