Недостатки базовой модели доступа и её расширения.



Ограниченность системы прав UNIX приводит к тому, что, к примеру, невозможно создать такое положение вещей, когда одна группа пользователей могла бы только читать из файла, другая - только запускать его, а всем остальным файл вообще не был бы доступен. Другое дело, что такое положение вещей встречается нечасто.

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

Многие современные файловые системы UNIX поддерживают также списки доступа (ACL), с помощью которых можно для каждого объекта задавать права всех субъектов на доступ к нему.

На практике флаги или управление доступом использовать приходится нечасто. В большинстве случаев такая необходимость возникает в виде исключения - например, для временного уменьшения прав или для временного предоставления доступа (легко сделать с помощью ACL), а также при работе с очень важными файлами.

Суперпользователь.

Пользователь root (он же суперпользователь) имеет нулевые UID и GID и играет роль доверенного субъекта UNIX. Это значит, что он не подчиняется законам, которые управляют правами доступа, и может по своему усмотрению эти права изменять. Большинство настроек системы доступны для записи только суперпользователю.

В UNIX существует уровень доступа ядра и уровень доступа системы. Суперпользователь работает на уровне доступа ядра, так что является по сути продолжением самой системы.

Многие команды должны исполняться только от имени суперпользователя, так как в них производится взаимодействие с частями ядра, отвечающими за взаимодействие с аппаратурой, права доступа и т.п.. Если же такие команды разрешается запускать простым пользователям, применяется рассмотренный выше механизм подмены идентификатора пользователя.

Системное администрирование в UNIX производится от имени пользователя root. При работе от этого имени следует быть очень осторожным: выполнение неверной команды может привести к краху системы и уничтожению информации. Поэтому даже администраторы никогда не работают в сеансе суперпользователя всё время, а переходят в режим суперпользователя только тогда, когда это действительно необходимо (например, с помощью команды su).

Аутентификация пользователей.

В UNIX сеанс работы пользователя начинается с его аутентификации и заканчивается его выходом из системы. При входе в систему выполняется следующая последовательность действий:

‒ процесс getty ожидает реакции пользователя на одной из терминальных линий, в случае активности пользователя выводит приглашение;

‒ после ввода имени пользователя запускается программа login, которая проверяет подлинность пользователя. Стандартным механизмом является проверка пароля, заданного для данного пользователя;

‒ убедившись, что пароль введён правильно, login запускает командный интерпретатор с установленными UID и GID данного пользователя. Таким образом, права доступа любой программы (действительного субъекта), запущенной пользователем в этом сеансе работы, будут определяться правами номинального субъекта UID+GID.

При работе по сети роль getty исполняет сетевой демон, например ssh. В некоторых современных UNIX-системах существуют расширения систем авторизации и аутентификации. Например, в Linux-системах этот механизм называется подключаемые модули аутентификации (Pluggable Authentication Modules, PAM).


 

Функциональные характеристики

К основным функциям ядра ОС UNIX принято относить следующие:

Инициализация системы - функция запуска и раскрутки. Ядро системы обеспечивает средство раскрутки (bootstrap), которое обеспечивает загрузку полного ядра в память компьютера и запускает ядро.

Управление процессами и нитями - функция создания, завершения и отслеживания существующих процессов и нитей ("процессов", выполняемых на общей виртуальной памяти). Поскольку ОС UNIX является мультипроцессной операционной системой, ядро обеспечивает разделение между запущенными процессами времени процессора (или процессоров в мультипроцессорных системах) и других ресурсов компьютера для создания внешнего ощущения того, что процессы реально выполняются в параллель.

Управление памятью - функция отображения практически неограниченной виртуальной памяти процессов в физическую оперативную память компьютера, которая имеет ограниченные размеры. Соответствующий компонент ядра обеспечивает разделяемое использование одних и тех же областей оперативной памяти несколькими процессами с использованием внешней памяти.

Управление файлами - функция, реализующая абстракцию файловой системы, - иерархии каталогов и файлов. Файловые системы ОС UNIX поддерживают несколько типов файлов. Некоторые файлы могут содержать данные в формате ASCII, другие будут соответствовать внешним устройствам. В файловой системе хранятся объектные файлы, выполняемые файлы и т.д. Файлы обычно хранятся на устройствах внешней памяти; доступ к ним обеспечивается средствами ядра. В мире UNIX существует несколько типов организации файловых систем. Современные варианты ОС UNIX одновременно поддерживают большинство типов файловых систем.

Коммуникационные средства - функция, обеспечивающая возможности обмена данными между процессами, выполняющимися внутри одного компьютера (IPC - Inter-Process Communications), между процессами, выполняющимися в разных узлах локальной или глобальной сети передачи данных, а также между процессами и драйверами внешних устройств.

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


 


Дата добавления: 2019-02-22; просмотров: 192; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!