Що таке ConsoleKit та PolicyKit? Як вони працюють?


42

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

Найкраща відповідь повинна пояснити, яку проблему кожен намагається вирішити та як їм вдається її вирішити.

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

Відповіді:


24

Коротше кажучи, consolekit - це послуга, яка відстежує сеанси користувача (тобто там, де користувач увійшов). Це дозволяє перемикати користувачів без виходу (багато користувачів можуть входити на одне обладнання на одному пристрої одночасно з одним активним користувачем). Він також використовується для перевірки того, чи є сеанс "локальним", тобто чи користувач має прямий доступ до обладнання (що може вважатися більш безпечним, ніж віддалений доступ). Документація на ConsoleKit .

PolicyKit дозволяє точно налаштовувати можливості в робочому середовищі. Традиційно лише привілейований користувач (root) дозволяв конфігурувати мережу. Однак, хоча в серверному середовищі, є обґрунтованим припущенням, що це було б занадто обмежувальним, щоб не дозволяти, наприклад, підключатися до точки доступу на ноутбуці. Однак ви все ще не хочете надавати цій особі повних привілеїв (наприклад, встановлення програм) або можете обмежити можливості для деяких людей (наприклад, на ваших дитячих ноутбуках можна використовувати лише "довірені" мережі з батьківськими фільтрами). Наскільки я пам'ятаю, це працює так:

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

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

EDIT в даний час ConsoleKit значною мірою замінений logind , який є частиною systemd , хоча є окрема версія elogind .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.