Bisher habe ich diese Anwendungen unter Gnome 2 und 3 mit gksudo gestartet. Dazu habe ich die Datei gedit-root.desktop angelegt:
[Desktop Entry] Name=gedit (root) GenericName=Text Editor (root) Comment=Edit text files Exec=gksodu /usr/bin/gedit Terminal=false Type=Application StartupNotify=true MimeType=text/plain; Icon=accessories-text-editor Categories=GNOME;GTK;Utility;TextEditor; X-GNOME-DocPath=gedit/gedit.xml X-GNOME-FullName=Text Editor (root) X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=gedit X-GNOME-Bugzilla-Component=general X-GNOME-Bugzilla-Version=3.0.0 X-GNOME-Bugzilla-ExtraInfoScript=/usr/share/gedit-2/gedit-bugreport X-Ubuntu-Gettext-Domain=gedit
Der Dialog zur Autorisierung sieht dann ähnlich wie dieser aus:
Startet man unter GNOME 3 Anwendungen wie synaptic, fällt sofort der neue Dialog auf um diese Anwendung als root zu auszuführen.
Dieser Dialog wird mit dem Befehl pkexec aufgerufen. In der Datei gedit-root.desktop wird der Aufruf wie folgt geändert:
Exec=pkexec "/usr/bin/gedit"
Das genügt jedoch noch nicht ganz. Es muss noch eine Policy-Datei für den Aufruf angelegt werden (siehe http://hal.freedesktop.org/docs/polkit/pkexec.1.html). Diese Datei sieht dann wie folgt aus:
Run Gedit as root Gedit als root starten Authentication is required to run Gedit Authorisierung ist erforderlich um Gedit zu starten gedit auth_admin auth_admin auth_admin /usr/bin/gedit true
Der Name der Datei ergibt sich aus der action id und der Endung policy. Sie wird dann unter "/usr/share/polkit-1/actions/de.aonnet.pkexec.gedit.policy" gespeichert.
Jetzt funktioniert der pkexec Aufruf und es erscheint der gewünschte Dialog: