ubuntuusers.de

pkcheck

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Dieser Artikel behandelt den DAEMON polkitd aus der Werkzeugsammlung PolicyKit bzw. polkit in der Fassung, wie er bei Ubuntu ab Version 24.04 verwendet wird. Für frühere Versionen siehe Artikel PolicyKit.

Dieser Artikel setzt die Kenntnis des Übersichtsartikels[1] voraus, siehe dort für eine Beschreibung der Funktionsweise des Systems polkit und Erklärungen für spezifische Fachbegriffe wie "Client", "Subject", „privilegiertes Programm“ und „Authentifizierungsagent“.

Der Befehl pkcheck für die Kommandozeile[2] ist quasi eine Simulation von polkitd[1]. Er ermöglicht einen Test, ob in der im Aufruf beschriebenen Situation die Beauftragung einer Aktion im System polkit gelingen oder abgewiesen wird.

Installation

Das Programm ist enthalten im Paket polkitd, welches zur Standardinstallation gehört. Für weitere Details lese den Übersichtsartikel[1].

Bedienung

Man startet[3] pkcheck aus einer Root-Shell[4], weil nur root oder ein Administrator (im Sinne von polkit) zu solchen Abfragen berechtigt ist.

Die Root-Shell kann man so erreichen:

pkexec 

(Bei Versionen vor 24.04 muss man zusätzlich eine Shell angeben.)

Aufrufschema:

pkcheck AKTION SUBJEKT OPTIONALE-OPTIONen 

AKTION, SUBJEKT und OPTIONALE-OPTIONen sind sämtlich Angaben lt. Tabelle 1, konkret entspricht AKTION der Option -a und SUBJEKT ist entweder -p oder -s.

Das Ergebnis eines Tests wird wesentlich durch die Beschreibung der Aktion und den im System existierenden und konkret aufgerufenen Regeln bestimmt. Näheres zu Aktionen und Regeln siehe Artikel polkitd.

Optionen

Tabelle 1: Optionen für pkcheck
Option Abk. Beschreibung
--version Kann nur als alleinstehende Option verwendet werden.
Es wird die verwendete Version des Systems polkit ausgegeben.
--help -h Kann nur als alleinstehende Option verwendet werden.
Es wird eine kurze Erklärung des Aufrufs angezeigt.
--action-id AKTION-ID -a Verpflichtende Angabe. AKTION-ID identifiziert die Aktion, welche man testen will. Beispiele siehe Übersicht[1].
--process PID -p Optionen -p und -s schließen sich gegenseitig aus, und eine muss benutzt werden.
Bei dieser Option wird SUBJEKT über die PID des Prozesses (= subject[1]) identifiziert.
--system-bus-name BUSNAME -s Optionen -p und -s schließen sich gegenseitig aus, und eine muss benutzt werden.
Bei dieser Option wird SUBJEKT über die Adresse des Prozesses (= subject[1]) am System-D-Bus identifiziert.
--allow-user-interaction -u Optionale Angabe.
--enable-internal-agent Optionale Angabe.
--detail KEY VALUE -d Optionale Angabe.
KEY bzw. VALUE stehen für den Namen bzw. den Wert einer Variablen, die an den Authentifizierungsagenten übergeben wird und die auch in den prüfenden Regeln verfügbar ist.

Beispiele

Ein Aufruf wie z.B.

pkcheck -p $$ -a org.freedesktop.policykit.exec -u ; echo $? 

zur Abfrage der eigenen ($$ liefert die PID der laufenden Shell) Berechtigungen für eine bestimmte Aktion (die hier beispielhaft genannte AKTION-ID org.freedesktop.policykit.exec ist natürlich anzupassen) ist ziemlich sinnlos, denn entweder macht man das bereits in einer Root-Shell oder man wird für die Nutzung von pkcheck zur Authentifizierung aufgefordert. Da man somit immer root ist und root ja alles darf, liefert der Befehl immer Erfolg bzw. in Shell-Sprache 0.

Sinn macht nur die Abfrage für einen anderen Prozess. Man muss also zwei Terminals[2] öffnen und

  • im ersten mit

    echo $$ 

    dessen PID (hier z.B. 10491) ermitteln und

  • im zweiten Terminal den Prüfbefehl mit der PID des anderen Terminals eingeben:

    pkcheck -p 10491 -a org.freedesktop.policykit.exec -u ; echo $? 

Diese Revision wurde am 18. März 2025 07:56 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System, Sicherheit