Que sont ConsoleKit et PolicyKit? Comment travaillent-ils?

42

J'ai vu que les versions récentes de GNU / Linux utilisent ConsoleKit et PolicyKit. À quoi servent-ils? Comment travaillent-ils?

La meilleure réponse devrait expliquer le type de problème que chacun tente de résoudre et comment ils parviennent à le résoudre.

Je suis un utilisateur GNU / Linux de longue date, à une époque où de telles choses n'existaient pas. J'utilise Slackware et récemment Gentoo. Je suis un utilisateur / admin / développeur avancé, donc la réponse peut (et devrait!) Être aussi détaillée et précise que possible. Je souhaite comprendre le fonctionnement de ces éléments pour pouvoir les utiliser (en tant qu’utilisateur ou en tant que développeur) de la meilleure façon possible.

Denilson Sá Maia
la source

Réponses:

24

En bref, consolekit est un service permettant de suivre les sessions utilisateur (c'est-à-dire lorsqu'un utilisateur est connecté). Il permet de changer d'utilisateur sans se déconnecter (plusieurs utilisateurs peuvent être connectés au même matériel en même temps avec un utilisateur actif). Il est également utilisé pour vérifier si une session est "locale", c'est-à-dire si un utilisateur a un accès direct au matériel (ce qui peut être considéré comme plus sécurisé qu'un accès distant). Documentation ConsoleKit .

PolicyKit permet des fonctionnalités optimisées dans un environnement de bureau. Traditionnellement, seul un utilisateur privilégié (root) était autorisé à configurer le réseau. Cependant, dans un environnement de serveur, il est raisonnable de penser qu'il serait trop contraignant de ne pas être autorisé à se connecter à un point d'accès sans fil sur un ordinateur portable, par exemple. Cependant, vous ne voudrez peut-être pas donner tous les privilèges à cette personne (comme installer des programmes) ou vouloir limiter les options à certaines personnes (par exemple, sur les ordinateurs portables de vos enfants, seuls les réseaux "de confiance" avec des filtres parentaux peuvent être utilisés). Autant que je me souvienne, cela fonctionne comme:

  • Programme envoyer un message au démon via dbus à propos de l'action
  • Le démon utilise les bibliothèques / la configuration de PolicyKit (en fait, le démon PolicyKit) pour déterminer si un utilisateur est autorisé à effectuer une action. Il peut arriver que certaines conditions doivent être remplies (comme la saisie d'un mot de passe ou l'accès au matériel).
  • Le démon exécute une action en fonction de celle-ci (renvoie une erreur d'authentification ou effectue une action)

Documentation PolicyKit .

EDIT actuellement, la ConsoleKit est en grande partie remplacée par logind , qui fait partie de systemd , bien qu’il existe une version autonome, elogind .

Maciej Piechotka
la source