Es gibt zwei allgemeine Möglichkeiten, Anwendungen grafisch als Root (oder allgemeiner als ein anderer Benutzer) auszuführen. Programme wie gksu
, gksudo
und kdesudo
sind grafische Frontends für sudo
. Im Gegensatz dazu gibt pkexec
es ein grafisches Frontend für PolicyKit .
Wenn manuell Programme als Wurzel (oder als ein anderes, nicht-root) ausgeführt wird , was die Vorteile / Nachteile (falls vorhanden) der Verwendung sind pkexec
, im Vergleich zu der traditionellen Methode der Verwendung eines sudo
Frontend?
Antworten:
PolicyKit ist konfigurierbarer,
pkexec
nutzt diese Konfigurierbarkeit jedoch nicht. Außerdempkexec
zeigen dem Benutzer den vollständigen Pfad des Programms , das gestartet werden wird, dass der Benutzer ein bisschen mehr sicher , was passieren wird. Die sogenannten "Policies" von PolicyKit können verwendet werden, um weitere Fortschrittseinstellungen vorzunehmen. Zum Beispiel, ob das Passwort gespeichert werden soll.Ich habe etwas aus dem
pkexec
Handbuch:Weitere Informationen zu Richtlinien oder Aktionsdefinitionen finden Sie im
pkexec
Handbuch:quelle
pkexec
grafische Anwendungen auszuführen (ich hatte es einfach noch nie getan ...). Ihre Antwort erklärt, warum dies nicht der Fall ist (oder warum zumindest eine benutzerdefinierte Umgebung angegeben werden muss, um dies zu tun).pkexec
, in welchem Sinne können die Funktionen ("Berechtigungen") eingeschränkt werden? Ich gebe einem Programm die Möglichkeit, irgendetwas zu tun, wenn ich es mitsudo
oder mit einemsudo
Frontend ausführe. Inwiefern macht das Ausführen eines Programms als Root diespkexec
nicht auch?pkexec
erleichtert das das oder läuft espkexec
einfach als root mit uneingeschränkten Fähigkeiten? Derpkexec
manuelle Auszug, den Sie in Ihre Antwort aufgenommen haben, dokumentiert, wie Sie Regeln schreiben, um zu bestimmen, wer ein Programm als Root (oder als anderer Benutzer ohne Rootberechtigung) ausführen kann, und nicht, was das Programm tun kann.pkexec
es konfigurierbarer ist alssudo
, und angesichts der Diskussion, die wir hier in den Kommentaren hatten, scheint dies nicht der Fall zu sein. Würden Sie erwägen, Ihre Antwort zu bearbeiten, um entwedersudo
die Konfigurierbarkeit zu erläutern und sie zu vergleichen / zu kontrastierenpkexec
, oder Ihre Antwort zu bearbeiten, um zu sagen, dass der Unterschied etwas anderes als Konfigurierbarkeit ist?Mit sudo können Sie pro Benutzer und pro Programmrichtlinien festlegen, ob die Anruferumgebung im Kontext von sudo beibehalten oder zurückgesetzt werden soll. Die env_reset-Richtlinie ist standardmäßig festgelegt.
Sie können grafische Anwendungen nicht über pkexec ausführen, ohne dies explizit zu konfigurieren. Da dies lediglich ein Ergebnis des Zurücksetzens der Umgebung ist, gilt dies offensichtlich auch für sudo. Beachten Sie jedoch, dass weder pkexec noch sudo verhindern können, dass eine böswillige Anwendung als Root ausgeführt wird, um alle erforderlichen Informationen von den Display-Managern oder der X11-Cookie-Datei des Benutzers abzurufen. Letzteres, beides oder ähnliches, kann in Abhängigkeit von den Umständen auch von Nicht-Root-Anwendungen durchgeführt werden.
Für Sudo ist keine explizite Auflistung der Benutzer erforderlich. Das Auflisten einer beliebigen Benutzergruppe oder das Festlegen einer Berechtigung für alle Benutzer im Allgemeinen ist möglich. Die Anweisung target_pw ermöglicht es diesen Benutzern, sich mit den Anmeldeinformationen des Benutzers zu authentifizieren, in dessen Kontext sie eine Anwendung ausführen möchten, dh root. Abgesehen davon kann das ebenso traditionelle Programm su (su / gtksu / kdesu) verwendet werden, um dasselbe ohne spezielle Konfiguration zu erreichen.
Mit sudo kann der Benutzer auch eine bestimmte Zeit lang authentifiziert bleiben. Die Option heißt Timeout und kann global, pro Benutzer oder pro Anwendung konfiguriert werden. Die Authentifizierung kann pro Tag oder global pro Benutzer beibehalten werden.
Während pkexec die an PROGRAM übergebenen ARGUMENTE möglicherweise nicht validiert, verfügt sudo in der Tat über diese Funktion. Zugegeben, Sie können sich leicht damit anlegen, und das wird normalerweise nicht gemacht.
Sie können ein wenig anpassen, wie Programme über pkexec ausgeführt werden sollen: Symbol, anzuzeigender Text, sogar Lokalisierungsmaterial und so weiter. Abhängig von den Umständen kann dies in der Tat raffiniert sein. Schade, dass jemand das Rad für diese Funktion neu erfinden wollte. Dies wäre wahrscheinlich etwas, das in die grafischen gtksudo / kdesu-Wrapper eingefügt werden könnte.
Policykit ist dann nur ein zentrales Konfigurationsframework. Leider kein hübscher. PKs XML-Dateien sind weitaus komplizierter als alles, was eine App nativ ohne Binärdateien bereitstellen könnte. Und niemand wäre so verrückt, Binary zu benutzen ... oh gconf ... egal.
quelle
pkexec
kann GUI ausgeführt werden, ohne die Konfiguration: askubuntu.com/a/332847/89385Ein paar Dinge, die
pkexec
sich vonsudo
den Frontends unterscheiden:pkexec
ohne dies explizit zu konfigurieren.pkexec
: Symbol, anzuzeigender Text, ob das Kennwort gespeichert werden soll oder nicht, ob es grafisch ausgeführt werden soll und noch einiges mehr.sudo
Sie in dersudoers
Datei als admin aufgeführt sein müssen .gksudo
Sperrt die Tastatur, die Maus und den Fokus, wenn Sie nach einem Kennwort gefragt werdenpkexec
. In beiden Fällen sind die Tastenanschläge jedoch hörbar .pkexec
Ihnen arbeiten Sie in einer etwas hygienischeren Umgebung.Versuchen Sie zum Beispiel:
quelle
root
mit auszuführenpkexec
. Ist es konfigurierbar, welche Benutzer überhaupt verwendenpkexec
können (auch wenn sie das Passwort eines anderen Benutzers kennen, der dazu berechtigt ist)?su
ist auf diese Weise konfigurierbar. Wenn ich versuche,su
einen anderenroot
Benutzer alsguest
auf einem Oneiric-System anzusprechen, wird mir mitgeteilt, dass ich dazu nicht berechtigt bin. (Im Gegensatz dazu , wenn ich versuche zu verwendenpkexec
wieguest
auf Oneiric oder Precise, bekomme ich , was wie eine Behauptung Fehler sieht, die ich bald als Fehler melden kann, wie ich es nicht , dass auch bekommen sollte , wenn es nicht erlaubt ist.)sudo
Frontend kann aber auch wie in Punkt 2 beschrieben angepasst werden . Sie können ein Programm mit benutzerdefiniertem Text ausführengksu
oder diesengksudo
anzeigen , indem Sie einige Benutzerpasswörter nicht mehr bearbeiten/etc/sudoers
(mitvisudo
) und ändern, wie lange sie im Sinne einer Änderung der Art gespeichert werden Es dauert lange, bis Sudo eine Zeitüberschreitung aufweist (obwohl ich nicht sicher bin, wie dies unter Ubuntu erfolgen soll, das so konfiguriert ist, dass die Fragen, obsudo
und wie lange ein Kennwort erforderlich ist, terminalspezifisch sind) ).pkexec
kann GUI ausgeführt werden, ohne die Konfiguration: askubuntu.com/a/332847/89385