Что такое ConsoleKit и PolicyKit? Как они работают?

42

Я видел, что последние GNU / Linux используют ConsoleKit и PolicyKit. Для чего они? Как они работают?

Лучший ответ должен объяснить, какую проблему пытается решить каждый и как им удается ее решить.

Я давний пользователь GNU / Linux, со времен, когда таких вещей не было. Я использую Slackware и недавно Gentoo. Я продвинутый пользователь / администратор / разработчик, поэтому ответ может (и должен!) Быть максимально подробным и точным. Я хочу понять, как эти вещи работают, поэтому я могу использовать их (как пользователь или разработчик) наилучшим образом.

Денилсон Са Майя
источник

Ответы:

24

Короче говоря, consolekit - это сервис, который отслеживает сеансы пользователя (то есть, когда пользователь вошел в систему). Это позволяет переключать пользователей без выхода из системы (многие пользователи могут войти в систему на одном и том же оборудовании одновременно с активным одним пользователем). Он также используется для проверки того, является ли сеанс «локальным», т. Е. Имеет ли пользователь прямой доступ к оборудованию (которое можно считать более безопасным, чем удаленный доступ). Документация ConsoleKit .

PolicyKit позволяет точно настраивать возможности в среде рабочего стола. Традиционно только привилегированный пользователь (root) мог настраивать сеть. Однако в то время как в серверной среде разумно предположить, что это будет слишком ограничением, чтобы, например, не было разрешено подключаться к точке доступа на ноутбуке. Однако вы, возможно, все же не захотите предоставлять полные привилегии этому человеку (например, устанавливать программы) или можете ограничить возможности некоторых людей (например, на ноутбуках ваших детей могут использоваться только «доверенные» сети с родительскими фильтрами). Насколько я помню, это работает так:

  • Программа отправляет сообщение демону через dbus о действии
  • Демон использует библиотеки / конфигурацию PolicyKit (фактически демона PolicyKit), чтобы определить, разрешено ли пользователю выполнять какое-либо действие. Может случиться так, что должны быть выполнены определенные условия (например, ввод пароля или доступ к оборудованию).
  • Демон выполняет действие в соответствии с ним (возвращает ошибку аутентификации или выполняет действие)

Документация PolicyKit .

EDIT в настоящее время ConsoleKit в значительной степени заменен на logind , который является частью systemd , хотя существует отдельная версия elogind .

Мацей Печотка
источник