Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bosy.docx
Скачиваний:
45
Добавлен:
24.06.2017
Размер:
3.14 Mб
Скачать

5. Суб. И объекты доступа в ос. Атр. Без-ти файла в ос Linux. Хранение атр. Без-ти.

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

Атрибуты без-ти файла в ОС Linux. Unix каждому файлу соотв-ет набор прав доступа, представленный в виде 9-ти битов режима. Он определяет, какие польз-ли имеют право читать файл, записывать в него данные или выполнять его. Вместе с др. 3мя битами, влияющими на запуск исполняемых файлов, этот набор образует код режима доступа к файлу. 12 битов режима хранятся в 16-битовом поле индексного дескриптора вместе с 4мя доп. битами, определяющими тип файла. Последние 4 бита устанавливаются при создании файлов и не подлежат изменению. Флаг исп-я трактуется по-разному в зависимости от типа файла. В случае простого файла он задаёт возм-ть исполнения файла, т.е. запуска программы, содержащейся в этом файле. Для директории – это возм-ть доступа к файлам в этой директории. Т.о. из своего каталога польз-ль может удалить любой файл. А если запись в каталог разрешена всем, то любой польз-ль сможет удалить в нём любой файл. Для избежания этой проблемы был добавлен ещё один бит в права доступа каталога: бит навязчивости (sticky, t-бит). При его установке польз-ль, имеющий доступ на запись в этот каталог, может изменять только собственные файлы. Для разрешения подмены идентификатора польз-ля применяется бит подмены идентификатора пользова теля (set user id, suid-бит, s). Этот бит применяется совместно с битом исполнения (x) для обычных файлов. При установке этого бита на исполняемый файл процесс запускается от имени владельца, а не от имени запускаеющего польз-ля

Хранение атрибутов без-ти. Атрибуты файла + расширенные атрибуты хранятся в структуре inode. К расширенным атрибутам относятся списки контроля доступа ACL, атрибуты SELinux и др. Атрибуты, для которых недостаточно места в структуре inode, хранятся в отдельном блоке размером 4 KB.

6. Суб. И об. Доступа в ос. Атр. Без-ти процесса. Хранение атр.В без-ти. Жиз. Цикл процесса. Сост-я процесса. Вып-е процесса в режиме ядра и в режиме польз-ля.

Объект доступа эл-т ОС, к которому осущ-ся доступ (файлы). Субъект доступа сущность, которая осуществляет доступ (процессы). Процесс экземпляр запущенной, выполняемой программы. Состоит из адресного пространства выделенной памяти, параметров без-ти, потоков выполнения программного кода, состояния.

Важные атрибуты процессов:

  • Process ID (PID): число, которое однозначно определяет процесс в системе (0, 1 и 2 – спец. системные процессы)

  • Данные и сегменты стека: инф-ция о виртуальной памяти процесса и сопоставление виртуальной памяти с физическим ресурсом.

  • Идентификаторы польз-лей и групп (UID и GID): реальный и эффективный UID и GID (обычно реальный = эффективный, но в некоторых случаях различны).

  • Терминал (TTY): терминал, с которого запущен процесс

В ядре процесс представлен в виде структуры (дескриптор процесса).

Жизненный цикл процесса. Все новые процессы в Linux порождаются клонированием какого-то уже имеющегося процесса, с помощью вызова системных функций clone() и fork(). Первый процесс запускается при инициализации ядра (процесс init, PID = 1).

Этапы запуска создания нового процесса:

  1. Процесс /bin/bash клонирует себя системным вызовом fork()

  2. При этом создается клон /bin/bash с новым PID и PPID

  3. Клон выполняет системный вызов exec() с указанием на исполняемый файл и заменяет свой код - кодом исполняемого файла (родительский процесс при этом ждет завершения потомка - wait)

  4. Если процесс завершил свою работу, а родительский процесс не смог получить об этом сигнал, то процесс не освобождает занятые структуры ядра и состояние процесса становиться - zombie.

  5. Состояния процесса

Название

Флаг

Описание

Running

R

процесс либо выполняется, либо ждет выполнения

Sleeping

S

процесс ждет выпол-я некоторых усл-й и возвращается к Running

D

процесс ждет опр. сигнала от аппаратной части (работа с диском)

K

состоянию D + реагирует на сигнал завершения процесса

Stopped

T

процесс остановлен польз-лем или трассируется

Zombie

Z

процесс, выполнение которого завершилось, но относящиеся к нему структуры ядра не освобождены

X

процесс полностью уничтожается (освобождение ресурсов)

Выполнение процесса

  • в режиме ядра процесс выполняет системные инструкции ядра

  • в режиме польз-ля процесс выполняет прикладные инструкции польз-ля

ps – выводит инф-цию о процессах: PID, TTY, TIME, COMMAND ps -e – выводит инф-цию обо всех процессах

ps j – выводит инф-цию о процессах: PPID, PID, TTY, STATE, UID, COMMAND и др.

Соседние файлы в предмете Безопасность операционных систем