Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Über das PolicyKit
können Anwendungen mit Benutzerrechten gestartet und später mit root-Rechten versehen werden. PolicyKit wurde bereits in die Werkzeuge zur Systemverwaltung von GNOME integriert. Dies ist daran zu erkennen, dass bei vielen Anwendungen nicht mehr das Root-Passwort beim Start der Anwendung abgefragt wird, sondern dass die Anwendung durch einen Klick auf
freigeschaltet wird.
Mittels PolicyKit lassen sich des weiteren Rechte fein verteilen. So ist es möglich, Benutzer zu bestimmen, denen bestimmte Aktionen erlaubt werden, für die normalerweise Root-Rechte von Nöten wären, ohne sie selber zu Administratoren zu machen.
Eine ausführliche Einführung in die Idee und die Implementierung des PolicyKits erhält man hier
.
Mit Hilfe des PolicyKit lassen sich zwar zusätzliche Rechte für bestimmte Benutzer gezielt erteilen, so dass für diese Nutzer die Benutzung des Systems "komfortabler" wird, allerdings kann das falsche / zu großzügige Setzen von Rechten erhebliche Sicherheitsrisiken bedeuten, da manche Nutzer unter Umständen zu weitreichende (System-) Rechte haben!
Mit Ubuntu 9.10 Karmic ist eine neuere Version des PolicyKits mit dem Namen "PolicyKit-1" implementiert worden. Dadurch bedingt ist die graphische Oberfläche komplett entfallen und die Kommandozeilen-Befehle haben sich geändert.
Das PolicyKit ist in der Standardinstallation von Ubuntu und Xubuntu enthalten, kann ansonsten über das Paket
policykit-gnome (bis Jaunty)
bzw.
policykit-1-gnome (ab Karmic)
installiert werden [1].
Unter KUbuntu bis Jaunty muss man das Paket
policykit
bzw. ab Karmic
policykit-1
installieren. Für KDE gibt es unter Kubuntu 9.04 Jaunty eine graphische Benutzeroberfläche, die über das Paket
policykit-kde
installiert wird [1].
Die GUI steht nur bis einschließlich Ubuntu 9.04 Jaunty zur Verfügung. Unter GNOME wird das PolicyKit über
"System -> Systemverwaltung -> Zugriffsberechtigungen"
gestartet.
Unter Xubuntu gibt es keine Eintrag im "Applications" Menü, diesen muss man bei Bedarf selber erstellen [4]. Das PolicyKit kann aber im Terminal [2] mit dem Befehl
polkit-gnome-authorization
aufgerufen werden.
Danach erscheint eine Benutzeroberfläche. Auf der linken Seite sieht man in Form einer Baumstruktur die einstellbaren Punkte sowie deren Gruppierung. Die Bezeichnung der Gruppen sowie der einzelnen Punkte ist dabei recht eindeutig.
Möchte man einen Punkt ändern, so klickt man diesen an, dann erscheinen in der rechten Fensterhälfte die entsprechenden Einstellmöglichkeiten und Informationen. Im oberen Teil unter "Aktion" erhält man eine allgemeine Beschreibung des gewählten Punkts. Darunter findet man dann die beiden möglichen Einstellungen, wobei das PolicyKit zwischen "Implizite Berechtigungen" und "Explizite Berechtigungen" unterscheidet:
"Implizite Berechtigungen" bedeutet, dass nicht ein Benutzer im speziellen autorisiert wird, sondern die Autorisierung für alle Benutzer gilt, die einen bestimmten "Zustand" haben. Dieser Zustand kann z.B. sein, dass der Nutzer in einer aktiven Konsole authentifiziert ist oder z.B. auch, dass der Benutzer nur am System angemeldet ist.
"Explizite Berechtigungen" bedeutet, dass die Rechte gezielt für einen Benutzer vergeben werden; es können nur Rechte für Benutzer vergeben werden, die ein Benutzerkonto auf dem System haben.
Möchte man für den gewählten Punkt die Autorisierung ändern, so klickt man auf "Bearbeiten ..." woraufhin ein neues Fenster erscheint. Das PolicyKit unterscheidet grundsätzlich drei "Grundarten" von Benutzern, nämlich "Jeder", Benutzer, die auf der Konsole angemeldet sind ("Konsole") und Nutzer, die auf einer aktiven Konsole sind ("Aktive Konsole"). Für jeden Punkt steht ein Auswahlmenü zur Verfügung, welches für die "Grundarten" die benötigte Authentifizierung und deren Dauer festlegt, um den gewählten Punkt zu ändern.
Ein Klick auf "Ändern ..." übernimmt die erteilten Rechte. Möchte man alle Rechte für diesen Punkt löschen, so klickt man im Hauptfenster auf "Standardeinstellungen ..."
Hier kann man, wie oben bereits erwähnt, einzelnen Nutzern gezielt das Recht geben, bestimmte Aktionen auszuführen. Dazu wählt man zuerst im linken Fenster die Aktion und klickt dann im rechten Fenster auf "Gewähren ...". Nun erscheint ein neues Fenster, in dem man zuerst in einem Auswahlmenü den Benutzer festlegen muss, dem man zusätzliche Rechte einräumen möchte. Anschließend kann man noch die Bedingung festlegen, die für den "Zustand" des Benutzer gelten muss, damit das Recht gewährt wird. Hier steht zur Auswahl:
"Keine" - keine Bedingung
"Muss in der aktiven Sitzung sein" - der Benutzer muss sich in einer aktiven Sitzung befindet
"Muss an der lokalen Konsole sein" - der Benutzer muss lokal (also nicht über SSH u.ä.) eingeloggt sein
"Muss in der an Sitzung in der aktiven Konsole sein" - eine Kombination der beiden vorherigen Punkte
Klickt man nun auf "Gewähren ...", so ist das zusätzlich Recht erteilt.
Möchte man bestimmte Aktionen für bestimmte Benutzer explizit verbieten, so klickt man im Hauptauswahlfenster auf "Verweigern ...", anschließend erscheint der gleiche Dialog wie oben beschrieben, nur dass die Aktion dauerhaft verweigert wird.
Ein Klick auf "Aufheben ..." im Hauptfenster löscht alle bisher gewährten (oder verweigerten) Rechte.
Grundsätzlich lassen sich alle Aktionen des PolicyKit auch über das Terminal steuern bzw. genau genommen ist das PolicyKit eine Sammlung von Programmen für die Kommandozeile. Für Kubuntu Benutzer vor Jaunty 9.04 ist dies auch der einzige Weg, da für KDE keine vollständige grafische Benutzeroberfläche zur Verfügung steht.
Das PolicyKit bzw. die dadurch festgelegten Rechte werden zentral in einer Konfigurationsdatei hinterlegt: /etc/PolicyKit/PolicyKit.conf. Dies ist eine XML-Datei, die man mit einem normalen Editor [3] bearbeiten könnte.
Da dies aber eher umständlich und fehlerträchtig ist, stehen verschiedene Programme zur Verfügung, mit denen diese Aufgabe komfortabler erledigt werden kann:
polkit-action - hiermit können Aktionen angezeigt, gesetzt und modifiziert werden
polkit-auth - hiermit können Rechte angezeigt, gesetzt und modifiziert werden
polkit-config-file-validate - hiermit kann geprüft werden, ob eine PolicyKit Konfigurationsdatei korrekt ist
polkit-policy-file-validate - hiermit kann geprüft werden, ob eine .policy Datei korrekt ist (diese Tool wird normalerweise selten benötigt)
Alle oben genannten Programme arbeiten nicht interaktiv, sonders ausschließlich mit Optionen. Eine gute Einführung bieten die Manpages zu den jeweiligen Programmen oder auch die online verfügbare Dokumentation
.
Ab Karmic steht, wie in der Einleitung bereist erwähnt, nur noch die Kommandozeile zur Verfügung.
Die Konfigurations-Dateien liegen unterhalb des Verzeichnisses /etc/polkit-1. Dort könne grundsätzlich auch eigene Konfigurations-Dateien angelegt werden. Die Dateien beginnen immer mit einer Zahl und werden aufsteigend abgearbeitet. Eigene Dateien sollen immer eine höhere Nummer tragen, als die höchste System-Datei.
Auf der Kommandozeile stehen folgende Programme zur Verfügung:
pkaction: Details zu einer registrieren Aktion ausgeben
pkcheck: Überprüfen, ob ein Prozess die passende Autorisierung besitzt
pkexec: Ein Kommando mit anderen Benutzerrechten durchführen
Weiterführende Informationen findet man in den entsprechenden Manpages: oder auf der Projekthomepage vom PolicyKit.
Diese Revision wurde am 7. November 2009 um 19:58 Uhr
von knutmithut erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet:
Sicherheit, System
2004 – 2010 ubuntuusers.de • Einige Rechte vorbehalten