
- •4.1Безопасность ос семейства unix
- •4.1.1Средства идентификации и аутентификации
- •4.1.1.1Этап регистрации пользователя в системе
- •4.1.1.2Иерархия пользователей и групп системы unix
- •4.1.1.3Модули pam
- •4.1.2Безопасность файловой системы ос unix
- •4.1.2.1Разграничение доступа к ресурсам
- •4.1.3Механизмы взаимодействия пользователя с ресурсами
- •4.1.3.1Специальные атрибуты доступа
- •4.1.3.2Изменение прав доступа к ресурсам системы
- •4.1.4Подсистема регистрации и учета
- •4.1.4.1Основные файлы журналов событий
- •4.1.4.2Универсальная подсистема учета System Log
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 и разрешении доступа к каталогу для всех классов пользователей для чтения, записи и исполнения любой пользователь может создать или удалить свой собственный файл, но не может удалить файлы других пользователей.