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.