PolicyKit: на страже безопасности системы

PolicyKit (Polkit) – библиотека для Unix подобных систем, основной функцией которой является предоставление возможности непривилегированным процессам вести себя как привилегированные, при этом не наделяя их правами администратора.

Права разграничиваются согласно модели DAC (Discretionary Access Control) по такому принципу: все объекты в Linux являются файлами, каждому файлу могут быть предоставлены права на чтение, запись и выполнение отдельно для root, группы и остальных пользователей.  Цель создания этой утилиты – гибкая настройка привилегий в системе. В отличие от sudo, PolicyKit предоставляет права суперпользователя не на весь процесс, а на определенные действия.

Принцип работы. PolicyKit отслеживает все системные запросы на выполнение каких-либо действий, поступающие от пользовательского процесса. Программа разрешает или запрещает выполнение конкретного действия. При этом, действие или процесс могут выполняться, но с условиями. Затем решение передается системной программе, которая выполняет соответствующие действия. Решения принимаются на основе правил выполнения действий (Authorization Rules). Совокупность таких правил для конкретного приложения называется политикой (Authorization policy).

polkit_01

Таким образом, в процессе решения о присвоении прав суперпользователя файлам участвуют: пользовательский процесс (subject), системный процесс (Mechanism), агент аутентификации (authentication agent) и непосредственно PolicyKit. Взаимодействие между субъектами осуществляется через системную шину сообщений D-Bus.

Сегодня PolicyKit поддерживается фактически всеми дистрибутивами Linux. Подробнее утилиту разбираем на нашем авторском курсе «L2-Security. Безопасность в Linux«!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *