Was sind ConsoleKit und PolicyKit? Wie arbeiten Sie?

42

Ich habe gesehen, dass neuere GNU / Linux ConsoleKit und PolicyKit verwenden. Wofür sind sie? Wie arbeiten Sie?

Die beste Antwort sollte erklären, welche Art von Problem jeder zu lösen versucht und wie er es schafft, es zu lösen.

Ich bin ein langjähriger GNU / Linux-Benutzer aus einer Zeit, in der es solche Dinge nicht gab. Ich habe Slackware und vor kurzem Gentoo benutzt. Ich bin ein fortgeschrittener Benutzer / Administrator / Entwickler, daher kann (und sollte!) Die Antwort so detailliert und genau wie möglich sein. Ich möchte verstehen, wie diese Dinge funktionieren, damit ich sie (als Benutzer oder Entwickler) bestmöglich nutzen kann.

Denilson Sá Maia
quelle

Antworten:

24

Kurz gesagt, consolekit ist ein Dienst, der Benutzersitzungen verfolgt (dh wo ein Benutzer angemeldet ist). Es ermöglicht das Wechseln von Benutzern, ohne sich abzumelden (viele Benutzer können gleichzeitig mit einem aktiven Benutzer auf derselben Hardware angemeldet sein). Es wird auch verwendet, um zu überprüfen, ob eine Sitzung "lokal" ist, dh ob ein Benutzer direkten Zugriff auf Hardware hat (die als sicherer als der Fernzugriff angesehen werden kann). ConsoleKit-Dokumentation .

PolicyKit ermöglicht die Feinabstimmung von Funktionen in einer Desktop-Umgebung. Bisher durfte nur ein privilegierter Benutzer (Root) das Netzwerk konfigurieren. In einer Serverumgebung ist es jedoch eine vernünftige Annahme, dass dies zu einschränkend ist, um beispielsweise keine Verbindung zu einem Hotspot auf einem Laptop herstellen zu dürfen. Möglicherweise möchten Sie dieser Person jedoch immer noch keine vollständigen Berechtigungen erteilen (z. B. Programme installieren) oder die Optionen für einige Personen einschränken (z. B. können auf Laptops Ihrer Kinder nur "vertrauenswürdige" Netzwerke mit Jugendschutzfiltern verwendet werden). Soweit ich mich erinnere, funktioniert es wie folgt:

  • Programm sendet eine Nachricht an den Daemon über dbus über die Aktion
  • Daemon verwendet PolicyKit-Bibliotheken / -Konfiguration (in der Tat PolicyKit-Daemon), um zu bestimmen, ob ein Benutzer eine Aktion ausführen darf. Es kann vorkommen, dass bestimmte Bedingungen erfüllt sein müssen (z. B. Passworteingabe oder Hardware-Zugriff).
  • Daemon führt die entsprechende Aktion aus (gibt einen Authentifizierungsfehler zurück oder führt die Aktion aus)

PolicyKit-Dokumentation .

BEARBEITEN Derzeit wird das ConsoleKit weitgehend durch logind ersetzt , das Teil von systemd ist , obwohl es eine eigenständige elogind- Version gibt .

Maciej Piechotka
quelle