Warum funktioniert es nicht?
Standardmäßig können Sie pkexeckeine grafischen (X11) Anwendungen ausführen. Von der Manpage:
The environment that PROGRAM will run it, will be set to a minimal
known and safe environment in order to avoid injecting code through
LD_LIBRARY_PATH or similar mechanisms. In addition the PKEXEC_UID
environment variable is set to the user id of the process invoking
pkexec.
As a result, pkexec will not allow you to run X11 applications
as another user since the $DISPLAY and $XAUTHORITY environment
variables are not set.
These two variables will be retained if the
org.freedesktop.policykit.exec.allow_gui annotation on an action is set
to a nonempty value; this is discouraged, though, and should only be
used for legacy programs.
Wie in der Manpage angegeben, können Sie es zum Laufen bringen, obwohl ich wirklich nicht weiß, ob dies irgendwie gefährlich oder empfohlen ist .
Um beispielsweise gedit zu aktivieren, können Sie /usr/share/polkit-1/actions/com.ubuntu.gedit.policyFolgendes erstellen :
<?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.0/policyconfig.dtd">
<policyconfig>
<vendor>gedit</vendor>
<vendor_url>gedit</vendor_url>
<icon_name>accessories-text-editor</icon_name>
<action id="org.freedesktop.policykit.pkexec.gedit">
<description>Run "gedit"</description>
<message>Authentication is required to run Text Editor</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/gedit</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>
Dann pkexec geditsollte wie erwartet funktionieren:

Wie Sie sich vorstellen können, wird dies nur geditfunktionieren. Wenn Sie allow_gui"org.freedesktop.policykit.exec" (die Standardaktion) hinzugefügt haben , sollte dies theoretisch für alle Anwendungen funktionieren, aber in meinen Tests habe ich das gleiche Ergebnis wie bei Ihnen erhalten.
Warum wird pkexec bevorzugt?
Hier finden Sie eine Diskussion über die Stärken von pkexec.