Polkit

Polkit (ранее PolicyKit) — компонент для управления системными привилегиями в Unix-подобных операционных системах. Polkit предоставляет организованный способ взаимодействия непривилегированных процессов с процессами, обладающими расширенными правами, а также уровень контроля над централизованной политикой системы. Разработка и поддержка осуществляется Дэвидом Зойтеном и компанией Red Hat, проект размещён на freedesktop.org. Распространяется как свободное программное обеспечение на условиях версии 2 лицензии GNU LGPL[3].

С версии 0.105, выпущенной в апреле 2012 года[4],[5] название проекта было изменено с PolicyKit на polkit, чтобы подчеркнуть, что компонент системы был переписан[6] и интерфейс программирования приложений (API) был изменён с нарушением обратной совместимости[7].

Fedora первой среди дистрибутивов Linux включила PolicyKit; позднее компонент был внедрён и в другие дистрибутивы, включая Ubuntu (начиная с версии 8.04) и openSUSE (с версии 10.3). Некоторые дистрибутивы, например Fedora[8], уже перешли на обновлённую версию polkit.

Также polkit позволяет выполнять команды с повышенными привилегиями с помощью утилиты pkexec, за которой следует исполняемая команда (от имени root)[9]. Однако зачастую предпочтительнее использовать sudo, который обеспечивает большую гибкость и безопасность, а также легче настраивается[10].

Общие сведения
Polkit
Тип авторизация привилегий
Разработчики David Zeuthen, Red Hat
Написана на C
Операционные системы Linux, Unix-подобные ОС
Первый выпуск 20 июня 2007[1]
Последняя версия
Репозиторий github.com/polkit-org/po…
Лицензия GNU LGPL (свободное ПО)
Сайт github.com/polkit-org/po…

Реализация

Функциональность Polkit реализует демон polkitd[11].

Уязвимость

В январе 2022 года была объявлена об уязвимости повреждения памяти PwnKit (CVE-2021-4034[12]), обнаруженной в команде pkexec (установлена во всех основных дистрибутивах Linux)[13].[14] Уязвимость присутствовала с самого первого релиза (2009 год). Она получила рейтинг CVSS 7.8 («Высокая степень серьёзности») из-за возможности эксплуатации: непривилегированные пользователи могут получить полный доступ root вне зависимости от архитектуры или работы самого демона polkit.

Примечания

  1. PolicyKit 0.3 (англ.) — 2007.
  2. Release 126 is out (англ.) — 2025.
  3. polkit Git COPYING. David Zeuthen. Дата обращения: 15 ноября 2012. Архивировано 22 февраля 2025 года.
  4. polkit Git NEWS. David Zeuthen. Дата обращения: 15 ноября 2012. Архивировано 30 июня 2024 года.
  5. Polkit releases. Дата обращения: 1 сентября 2018. Архивировано 25 августа 2025 года.
  6. Chapter 9. PolicyKit. openSUSE Security Guide. Novell, Inc. and contributors. Дата обращения: 15 ноября 2012. Архивировано 27 августа 2012 года.
  7. Polkit and KDE: let's make the point of the situation (22 декабря 2009). Дата обращения: 15 ноября 2012. Архивировано 9 сентября 2024 года.
  8. Features/PolicyKitOne. Fedora Project Wiki. Дата обращения: 15 ноября 2012. Архивировано 30 ноября 2024 года.
  9. pkexec. polkit Reference Manual. Дата обращения: 25 мая 2013. Архивировано 30 августа 2025 года.
  10. When to use pkexec vs. gksu/gksudo? Дата обращения: 25 мая 2013. Архивировано 4 июня 2025 года.
  11. Команда разработчиков BLFS. 4: Безопасность // За пределами проекта "Linux® с нуля". Версия 7.4 : [рус.]. — Москва : ЛитРес, 5 сентября 2017. — Vol. 1. — P. 169. — ISBN 9785457831186.
  12. CVE listing for CVE-2021-4034. Mitre. Дата обращения: 25 января 2022. Архивировано 4 декабря 2021 года.
  13. PwnKit: Local Privilege Escalation Vulnerability Discovered in polkit's pkexec (CVE-2021-4034). Qualys (25 января 2022). Дата обращения: 25 января 2022. Архивировано 5 октября 2025 года.
  14. Major Linux PolicyKit security vulnerability uncovered: Pwnkit. ZDNet (25 января 2022). Дата обращения: 25 января 2022. Архивировано 26 декабря 2024 года.