Редактирование: UNИX, весна 2008, 06 лекция (от 19 марта)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.

Текущая версия Ваш текст
Строка 11: Строка 11:
Азы. Азы состоят в следующем: пользователи в Линух-системе отличаются в первую очередь друг от друга двумя вещами: есть понятие login name и есть user id. Между ними существует путаница. В общем случае одно не есть другое. Тем не менее, если мелко всё это видеть, то можно приравнять одно к другому. Логин набираем при регистрации в системе, оно текстовое (повелось, что это маленькие латинские буквы), оно хранится в /etc/passwd с качестве первого поля. В этом же файле каждому имени соответсвует user id (вообще, реальная ситуация, когда несколько имён соотв одному user id). Зачем это нужно? Это нужно, чтобы разобраться, какой ресурс какому пользователю принадлежит. Этот user id --- некий идентификатор, указывающий на пользователя. Присваивается процессам и файлам всем, наличествующим в системе. Задача ФС: обеспечить достаточную информацию в поле метаинф. графы имя хранение user id. Что касается процессов, то это задача системы.
Азы. Азы состоят в следующем: пользователи в Линух-системе отличаются в первую очередь друг от друга двумя вещами: есть понятие login name и есть user id. Между ними существует путаница. В общем случае одно не есть другое. Тем не менее, если мелко всё это видеть, то можно приравнять одно к другому. Логин набираем при регистрации в системе, оно текстовое (повелось, что это маленькие латинские буквы), оно хранится в /etc/passwd с качестве первого поля. В этом же файле каждому имени соответсвует user id (вообще, реальная ситуация, когда несколько имён соотв одному user id). Зачем это нужно? Это нужно, чтобы разобраться, какой ресурс какому пользователю принадлежит. Этот user id --- некий идентификатор, указывающий на пользователя. Присваивается процессам и файлам всем, наличествующим в системе. Задача ФС: обеспечить достаточную информацию в поле метаинф. графы имя хранение user id. Что касается процессов, то это задача системы.
-
Зачем это надо: когда процесс что-то делает с файлом, вступает в силу информация какому пользователю принадлежит процесс и файл. Вот эти самые идентификаторы, которые участвуют, одинаковые на файл и процесс. По крайней мере, по умолчанию, не используются идентификаторы файла и правила, кто с ним что может делать, это может быть в качестве расширения, оно есть в посих ACL. Далее можно ввести такое бинарное деление: если uid процесса и файла совпадают, то будем считать, что процесс - хозяин файла, иначе файл для процесса чужой, и принятие решение будет на основании того, что файл чужой. Под файлом имеется в виду любой объект ОС. Здесь берём файлы как наиболее распространённый вид объектов. Какая проблема с простейшим бинарным делением: есть PUID, FUID, мой-немой файл. В случае, если мой файл, то разрешаю только чтение и запись, если чужой, то хозяин разрешил только чтение. Это субъект-субъектная модель доступа ... . Чем это плохо: иногда удобно организовать доступ сразу для нескольких уидов, например, хорошие пользователи имеют право писать, плохие --- нет. Не нарушая модели, вводятся пользователи. В /etc/passwd /etc/group записан список пользователей, членом группы которых они являются. Заметка: это не единственное место, с помощью PAM можно прикручивать произвольные бэкенды. Первая группа указывается в /etc/passwd, остальные опциональны. И дополнительно указываются права для группы.
+
Зачем это надо: когда процесс что-то делает с файлом, вступает в силу информация какому пользователю принаджлежит процесс и файл. Вот эти самые идентификаторы, которые участвуют, одинаковые на файл и процесс. По крайней мере, по умолчанию, не используются идентификаторы файла и правила, кто с ним что может делать, это может быть в качестве расширения, оно есть в посих ACL. Далее можно ввести такое бинарное деление: если uid процесса и файла совпадают, то будем считать, что процесс - хозяин файла, иначе файл для процесса чужой, и принятие решение будет на основании того, что файл чужой. Под файлом имеется в виду любой объект ОС. Здесь берём файлы как наиболее распространённый вид объектов. Какая проблема с простейшим бинарным делением: есть PUID, FUID, мой-немой файл. В случае, если мой файл, то разрешаю только чтение и запись, если чужой, то хозяин разрешил только чтение. Это субъект-субъектная модель доступа ... . Чем это плохо: иногда удобно организовать доступ сразу для нескольких уидов, например, хорошие пользователи имеют право писать, плохие --- нет. Не нарушая модели, вводятся пользователи. В /etc/passwd /etc/group записан список пользователей, членом группы которых они являются. Заметка: это не единственное место, с помощью PAM можно прикручивать произвольные бэкенды. Первая группа указывается в /etc/passwd, остальные опциональны. И дополнительно указываются права для группы.
Когда осуществляется доступ процесса к файлу, на самом деле осуществляется две проверки: на UID, далее среди всех групп, в которых состоит владелец процесса, ищестя такая, которая совпадает с группой файла. В случае, если среди списков групп находится такая, которая совпадает, то считается, что файл принадлежит группе, членом которой является пользователь. И вот только после того как не срабатывают обе проверки, файл считается для процесса чужим. В случае, если первое правило сработало, то вторая проверка не производится.
Когда осуществляется доступ процесса к файлу, на самом деле осуществляется две проверки: на UID, далее среди всех групп, в которых состоит владелец процесса, ищестя такая, которая совпадает с группой файла. В случае, если среди списков групп находится такая, которая совпадает, то считается, что файл принадлежит группе, членом которой является пользователь. И вот только после того как не срабатывают обе проверки, файл считается для процесса чужим. В случае, если первое правило сработало, то вторая проверка не производится.

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Личные инструменты
Разделы