Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МиСЗКИ_4_5.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
929.28 Кб
Скачать

4.1.3Механизмы взаимодействия пользователя с ресурсами

4.1.3.1Специальные атрибуты доступа

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

Как пример программы-посредника, можно привести утилиту passwd, позволяющую пользователям системы изменять свои пароли. Смена пароля пользователя требует прав на изменения файла учетных записей /etc/passwd. Обеспечение возможности прямого доступа к этому файлу для обычного пользова­теля привело бы к нарушению системы безопасности из-за нарушения защиты от несанкционированного изменения ресурса. При получении доступа к файлу учетных записей любой пользователь мог бы изме­нить пароль любого другого пользователя системы или удалить какую-либо учетную запись.

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

Значение эффективного пользовательского или группового идентификатора SUID-программы при запуске изменяется на UID владельца программы. Новый идентификатор заменяет идентификатор пользователя, запустившего приложение-посредник.

Как правило, этот атрибут устанавливается для того, чтобы обычный пользователь мог запус­кать программы, которым для выполнения их функций необходимы привилегии суперпользователя.

Однако этот атрибут может понадобиться и обычному пользователю, как спо­соб сделать доступной для остальных программу, которой иначе может пользо­ваться только он. Такими программами могут быть, например, средства доступа к персональным базам данных пользователя, которые этот пользователь желает сде­лать доступными для других пользователей.

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

Помимо атрибута SUID есть схожий с ним атрибут SGID. Файл, для которого установлен этот атрибут, всегда выполняется от имени группы, которая обладает этим файлом. Для пользователя, который хочет сделать доступной для остальных свою личную программу, применение атрибута SGID зачастую оказывается луч­шим решением, чем использование атрибута SUID.

Для каталогов атрибут SGID имеет иное значение. Обычно он устанавлива­ется для каталога, содержащего файлы, используемые совместно несколькими пользователями. Если у каталога установлен атрибут SGID, то любому файлу, созданному в нем, в качестве группы-владельца назначается группа этого ката­лога, а не группа создавшего файл пользователя. Поэтому если установить этот атрибут у каталога с gif-файлами и сделать владельцем этого каталога группу gifs, то всем файлам, создаваемым в нем, в качестве владельца будет назначаться груп­па gifs. Если блокировать доступ к этому каталогу для всех остальных пользова­телей, за исключением владельца и группы, то размещенные в каталоге файлы будут доступны только пользователям, принадлежащим к группе gifs.

Атрибуты SUID или SGID отображаются строкой прав доступа, в которых знак права исполнения "х" в поле прав доступа пользователя или группы соответственно заменен на символ "s".

В случае, когда бит права исполнения не установлен, а ресурс имеет атрибут SUID или SGID, символ "s" в соответствующем классе поля прав пользователей заменяется на прописную букву "S".

В некоторых ОС семейства UNIX атрибуты SUID или SGID не устанавливаются, если отсутствует флаг возможности исполнения ресурса для владельца или группы соответственно.

Существует дополнительный атрибут, определяющий права доступа в UNIX. Его называют би­том фиксации {Sticky) и обозначают символом "t" в поле прав на исполнение ресурса для пользова­телей, не вошедших в классы владельцев или членов группы ресурса.

Как и для SUID- или SGID-ресурсов, при сброшенном бите права на выполнение файла для со­ответствующей категории пользователей, этот атрибут отображают прописным символом "T".

Для исполняемых файлов этот атрибут имеет скорее историческое, чем практическое значение: в прошлом он предписы­вал ядру выгружать завершившуюся программу из памяти не сразу же, а лишь спустя некоторое время, что позволяло избежать постоянной загрузки с диска наиболее часто вызываемых программ. Теперь же завершившаяся программа вы­гружается из памяти лишь тогда, когда возникает нехватка памяти, поэтому для Linux никакой смысловой нагрузки этот атрибут не несет (в некоторых Unix-системах он используется, но для иных целей). Для каталога же этот атрибут означает, что только владельцам дозволено изменять содержащиеся в нем файлы, т.е. ресурсы каталога могут быть удалены или переименованы только владельцем ресурса, вла­дельцем каталога или суперпользователем. Например, при установленном атрибуте фиксации у каталога /tmp и разрешении доступа к каталогу для всех классов пользователей для чтения, записи и исполнения любой пользователь может создать или удалить свой собственный файл, но не может удалить файлы других пользователей.