Wann sollte ich pkexec und wann sudo -i verwenden?

21

Ich schrieb eine Antwort mit dem Hinweis auf die Verwendung von sudo -i nautilus. Ich weiß, dass gksudas veraltet ist , und ich hatte den Eindruck, dass sudo -iwir grafische Anwendungen als Root ausführen sollten, ohne Kätzchen zu töten , aber jemand kommentierte " pkexecist das Neue gksu". Meines Erachtens ist das pkexecnicht dasselbe wie die Verwendung einer Form von sudo:

Wann benutzt man pkexec vs gksu / gksudo?

und erfordert die Einrichtung, insbesondere für die Verwendung mit grafischen Anwendungen:

Wie konfiguriere ich pkexec?

Wenn ich sudo -ialles mache, funktioniert es immer. Warum sollte ich mich dann um die Konfiguration kümmern pkexec? Ich kann sehen, dass ich zum Schreiben eines Skripts, das etwas als root startet, Folgendes tun müsste:

Kann ich pkexec in einem Python-Skript oder einer .desktop-Datei verwenden?

Aber was nehme ich sonst davon pkexec? Wann sollte ich diese Befehle verwenden? Was ist derzeit die beste Vorgehensweise zum Öffnen grafischer Anwendungen als Root?

(Ich habe bereits die ... manSeiten gelesen , aber ich fühle mich nicht weiser.)

Zanna
quelle
5
Ich persönlich ignoriere die Ablehnung und installiere immer gksuauf jedem System, um GUI-Apps bei gksudoBedarf auszuführen . Nichts anderes.
Byte Commander
1
In Verbindung stehend: Dieser alte Beitrag auf Meta hatte relevante Diskussion und die am meisten empfohlene Antwort sudo -iist eine sichere Lösung; Aber nicht viel erklärt für pkexec.
Clearkimura
1
Was ist mit sudoedit(AKA sudo -e) , wenn Sie GUI-Texteditoren zum Bearbeiten von Dateien als Root verwenden ?
Edwinksl
1
@edwinksl meintest du, du könntest einen grafischen Editor als Standard festlegen für sudoedit? Interessante Idee
Zanna
1
@Zanna Ja, siehe zum Beispiel unix.stackexchange.com/a/356443/6949 .
Edwinksl

Antworten:

2

Die grundsätzliche Verwendung ist die gleiche - mit den fraglichen Programmen können Sie andere Programme als ein anderer Benutzer ausführen, normalerweise root. Der Unterschied zwischen sudoVarianten und pkexecbesteht jedoch darin, dass sudoein Programm die vollständige Kontrolle über alles hat, während pkexecSie eine viel feinere Kontrolle haben, indem Sie für jedes Programm eine Richtlinie definieren.

Wenn Sie den von Ihnen ausgeführten Programmen vertrauen, ist sudo vollkommen in Ordnung. Wenn Sie wirklich alles sperren und Programmen erlauben möchten, nur das zu tun, was Sie ihnen erlauben, dann verwenden Sie pkexecdas mit dem Polkit .

Die Idee dahinter pkexecist zwar nett, aber ich würde es gksuaufgrund des erforderlichen komplexen Aufbaus nicht so weit bringen, es das nächste Mal zu nennen.

Hinweis: Der Unterschied zwischen sudo und pkexec auf Quora .

Brane
quelle