- •Введение
- •Понятие операционной системы. Типы операционных систем
- •Функции операционной системы
- •Структура операционной системы. Ос ms dos
- •Файлы и каталоги на дисках
- •Драйверы устройств
- •Базовая система ввода-вывода (bios)
- •Загрузчик операционной системы
- •Ядро ms dos
- •Командный процессор dos
- •Внешние команды dos
- •Файловая структура диска
- •Стартовый сектор
- •Каталоги
- •Область данных
- •Операционные системы Windows
- •Выбор платформы Windows
- •Термины
- •Архитектура Windows Режимы выполнения программного кода
- •Многозадачность
- •Управление памятью в Windows
- •Выполнение приложений
- •Интерфейс прикладного программирования Win32
- •Реестр Windows
- •Операционная система unix
- •Ядро и процессы unix
- •Диспетчер unix
- •Процессы unix
- •Дескриптор и контекст процесса
- •Иерархия процессов
- •Идентификаторы процесса
- •Группы процессов
- •Взаимодействие процессов
- •Процессы-«демоны»
- •Межпроцессные коммуникации unix
- •Сигналы
- •Сигналы unix по мере возрастания их значений:
- •Семафоры
- •Программные каналы (Pipes)
- •Очереди сообщений
- •Разделяемая память
- •Многопользовательская защита в unix
- •Идентификаторы пользователя и группы
- •Код защиты файла
- •Привилегированный пользователь
- •Эффективные и реальные идентификаторы
- •Свопинг и пейджинг в unix
- •Буфер кеш-памяти
- •Управление вводом/выводом
- •Специальные файлы
- •Взаимодействие драйверов с программной и аппаратной средой
- •Файловая система unix
- •Основные системные каталоги
- •Корневой каталог /
- •Каталог /var
- •Каталог /etc
- •Каталог /usr
- •Каталог /home (/export/home)
- •Каталог/opt (/opti, /opt2, ... /optn)
- •Команды управления swap
- •Команда mkfile
- •Специальные файлы
- •Класс устройства
- •Тип и номер
- •Связь физической и логической структур
- •Создание и монтирование файловой системы
- •Дисковые устройства в unix
- •Внутренняя структура файловой системы Распределение дискового пространства
- •Индексные дескрипторы
- •Системные вызовы unix для работы с файлами
- •Стандартные библиотечные функции ввода/вывода
- •Поточные функции ввода/вывода
- •Литература
- •Оглавление
-
Многопользовательская защита в unix
Поскольку UNIX изначально является не только многозадачной, но и многопользовательской ОС (в отличие, скажем, от Windows NT или OS/2), то вопросам многопользовательской защиты в UNIX всегда уделялось достаточно большое внимание.
-
Идентификаторы пользователя и группы
Все пользователи, которым разрешена работа в системе, учитываются в файле пользователей /etc/passwd. Пользователи, объединенные в группы, учитываются в файле /etc/group. Каждому пользователю назначается целочисленный идентификатор и пароль.
Когда пользователь входит в систему, отыскивается строка в учетном файле /etc/passwd. Если поле пароля пусто, пароль не запрашивается.
С каждым процессом связаны два идентификатора: 1) идентификатор пользователя и 2) идентификатор группы. Обычно команды, вводимые с клавиатуры подключенного терминала, интерпретируются командным интерпретатором Shell, который получит эти идентификаторы от пользователя после его регистрации в системе. Порожденный процесс наследует эти два идентификатора от породившего.
С каждым файлом также связаны два идентификатора: пользователя и группы. Файл наследует их от процесса, который его создал. Пользователь и группа, идентификаторы которых связаны с файлом, считаются его владельцами. Можно изменить владельца файла с помощью команд chown, chgrp. Идентификаторы файла определяют права доступа к нему.
Могут существовать 3 категории:
1. владелец файла (процесс, у которого идентификатор пользователя совпадает с идентификатором владельца файла);
2. члены группы (процессы, у которых идентификатор группы совпадает с идентификатором группы, к которой файл принадлежит);
3. прочие - все остальные процессы.
Процессы могут иметь различные способы доступа к файлу, например: чтение, запись, выполнение.
-
Код защиты файла
У любого файла имеется код защить, присвоенный ему при создании.
Код защиты - это слово в индексном дескрипторе файла с установленными единичными значениями битов:
000200 - запись владельцу;
000100 - выполнение владельцу;
000040 - чтение членам группы;
000020 - запись членам группы;
000010 - выполнение членам группы;
000004 - чтение прочим пользователям;
000002 - запись прочим пользователям;
000001 - выполнение прочим пользователям.
При попытке доступа к файлу у процесса определяется категория, в которую он попадает по отношению к файлу. Затем из кода защиты выбираются 3 бита, которые должны соответствовать этой категории. Если совпадения не произошло, т. е. ни один бит не совпадает, ядро отвергает запpoc процесса.
Конечно, можно изменить код защиты любого файла, но сделать это может только привилегированный пользователь.
-
Привилегированный пользователь
Процесс, который имеет идентификатор пользователя, равный нулю, считается привилегированным пользователем.
Независимо от кода защиты файла, привилегированный пользователь имеет доступ ко всем файлам в системе. Обычно в учетном файле пользователей в /etc/passwd имеется привилегированный пользователь с именем root. Как правило, его применяет системный программист, отвечающий за сохранность системы и выполняющий функции администратора.