Perché non funziona?
Per impostazione predefinita pkexec, non consente di eseguire applicazioni grafiche (X11). Dalla pagina man:
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.
Come affermato nella pagina man, puoi farlo funzionare anche se non so davvero se questo sia in qualche modo pericoloso o raccomandato .
Per abilitare gedit, ad esempio, puoi creare /usr/share/polkit-1/actions/com.ubuntu.gedit.policycon il seguente contenuto:
<?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>
Quindi pkexec geditdovrebbe funzionare come previsto:

Come puoi immaginare, questo funzionerà solo gedit. In teoria, se hai aggiunto allow_guia "org.freedesktop.policykit.exec" (l'azione predefinita) questo dovrebbe funzionare per tutte le applicazioni, ma nei miei test ho ottenuto lo stesso risultato del tuo.
Perché è preferito pkexec?
Qui puoi trovare una discussione sui punti di forza di pkexec.