Ich verwende eine alternative Lösung zur akzeptierten Antwort. Ich bevorzuge die Verwendung lxpolkit
anstelle von, policykit-1-gnome
da es für LXDE entwickelt wurde.
Dieses Problem, pkexec
wenn der Authentifizierungsbildschirm nicht gestartet wird, ist sehr häufig. Als Erstes müssen Sie überprüfen, ob Sie eine grafische Policy Kit-Oberfläche (entweder lxpolkit
oder policykit-1-gnome
) für LXDE installiert und konfiguriert haben, da diese Pakete markiert sind, um während eines größeren Upgrades von lubuntu entfernt zu werden. Anscheinend sind beide bei der Installation der Distribution nicht enthalten.
Lösung
Installieren lxpolkit
.
sudo apt-get install lxpolkit
Abmelden und Anmelden.
Set lxpolkit
als Standard - Policy - Agent
Im Menü, gehen Sie zu Preferences > Default applications for LXSession
(oder laufen lxsession-default-apps
in einem Terminal). Gehen Sie im ersten Abschnitt "Ausführen von Anwendungen" ( Update: Standard-Apps-Manager 14.10 ist anders. Verwenden Sie die Core applications
Registerkarte. ) Zur Option für Polkit agent
und stellen Sie sicher, dass lxpolkit ausgewählt ist.
Anstatt das Paket zu verwenden policykit-1-gnome
, lxsession
wird es jetzt lxpolkit
für LXDE verwendet.
Warum Apps, die mit gestartet wurden, pkexec
nicht über das LXDE-Menü ausgeführt werden
Es kommt darauf an, wie Apps im X11-System mit pkexec gestartet werden .
Die im lxpanel-Menü angezeigten Apps werden entweder in /usr/share/applications
(globale Menüelemente ) oder ~/.local/share/applications
(benutzerspezifisch) gespeichert und konfiguriert . Siehe LXDE Wiki - Hauptmenü
In diesen Verzeichnissen finden Sie eine .desktop-Datei für jede der in Ihrem Menü angezeigten Anwendungen. Hier ist ein Beispiel für /usr/share/applications/synaptic.desktop
:
[Desktop Entry]
Name=Synaptic Package Manager
GenericName=Package Manager
Comment=Install, remove and upgrade software packages
Exec=synaptic-pkexec
Icon=synaptic
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
NotShowIn=KDE;
X-Ubuntu-Gettext-Domain=synaptic
Beachten Sie die Linie Exec=synaptic-pkexec
.
Wenn keine Policy Kit-Oberfläche vorhanden ist, wird der Benutzer normalerweise in der Befehlszeile nach einem Kennwort gefragt. Da dies ein Menüpunkt ist, wird dieser im Hintergrund gestartet und es gibt keine Befehlszeile zur Eingabe des Passworts. Daher müssen Sie sicherstellen, dass Sie verwenden lxpolkit
. Wenn Sie das Gnome-Polkit bevorzugen, installieren Sie das Paket, mit policykit-1-gnome
dem das Anmeldemenü bei jeder Verwendung gestartet pkexec
wird. Ich habe das Paket entfernt policykit-1-gnome
und die Verwendung lxpolkit
funktioniert gut für alle Anwendungen.
Alternativlösungen
Verwenden Sie gksudo anstelle von pkexec.
Sie können im Menü mit der rechten Maustaste auf Anwendungen wie synaptic klicken, auf Eigenschaften klicken und das Feld Befehl von synaptic-pkexec
auf ändern gksudo synaptic
. Oder kopieren Sie über die Befehlszeile die Originaldatei in das Anwendungsverzeichnis Ihres Benutzers mitsudo cp /usr/share/applications/synaptic.desktop ${HOME}/.local/share/applications/synaptic.desktop
Bearbeiten Sie dann die Zeile Exec=synaptic-pkexec
und ersetzen Sie sie durchExec=gksudo synaptic
gksudos "Hauptzweck ist es, grafische Befehle auszuführen, die root benötigen, ohne einen X-Terminal-Emulator ausführen zu müssen und su direkt zu verwenden." - GKSU (1)
Und das aus gutem Grund! Siehe Grafisches Ausführen von Sudo .
Dies erfordert natürlich, dass jede Anwendung, die auf pkexec basiert, bearbeitet wird, um mit gksudo gestartet zu werden. Dies erfordert mehr Arbeit von Ihrer Seite, wenn Sie lxpanel verwenden. Einen schönen Vergleich der Sicherheits- und Benutzerfreundlichkeitsfunktionen für gksudo und PolicyKit finden Sie unter Vergleich der Berechtigungsberechtigungsfunktionen .
Schreiben Sie Ihre eigenen pkexec
Richtlinien für einzelne Anwendungen
Dies ist mehr als ich tun möchte, aber es kann in einigen Situationen nützlich sein. Ich empfehle dies nicht ohne ein tiefes Verständnis für das Schreiben von PolicyKit-Aktionen .
Die Aktionen, die Ihnen über polkit zur Verfügung stehen, hängen von den von Ihnen installierten Paketen ab. Einige werden in mehreren Desktop-Umgebungen (org.freedesktop. ) Verwendet , andere sind DE-spezifisch (org.gnome. ) Und einige sind spezifisch für ein einzelnes Programm (org.archlinux.pkexec.gparted.policy). Der Befehl pkaction listet alle in / usr / share / polkit-1 / action definierten Aktionen zur schnellen Referenz auf.
Hier ist ein Beispiel, das ich nicht getestet habe, von City-busz - Mit dem Befehl 'pkexec' anstelle von 'gksu' :
ZB wenn Sie gparted als root mit ausführen möchten
$ pkexec gparted
Befehl, dann erstellen Sie eine neue Datei
/usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy
mit folgendem Inhalt:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<action id="org.freedesktop.policykit.pkexec.run-gparted">
<description>Run GParted</description>
<message>Authentication is required to run GParted</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/gparted</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">TRUE</annotate>
</action>
</policyconfig>
Weitere Aktionen können derselben Datei hinzugefügt werden.
Ein Tipp an renegat bei archlinux.org für die Zusammenstellung relevanter Auszüge aus verwandten LXDE- und PolicyKit-Dokumentationen, die mich letztendlich dazu veranlassten, LXPolkit als bevorzugte Lösung zu verwenden.