De las siguientes preguntas
vemos que gksu ya no será compatible a largo plazo, y no se instalará de manera predeterminada desde> = 13.04. En cambio, deberíamos usar pkexec, que hace su trabajo bien para aplicaciones no gráficas, pero no para aplicaciones en la GUI:
pkexec gedit
al reemplazar gksu en un archivo .desktop
EXEC=pkexec /usr/bin/gedit
o cuando ejecuto un script de Python para ejecutar una aplicación gráfica con permisos de root, aparece el siguiente error:
>>>subprocess.Popen(['pkexec','gedit'])
** (gedit:3203): WARNING **: Could not open X display
¿Cómo tendría que volver a escribir mis scripts o mis archivos .desktop para admitir un diálogo de autenticación y ejecutar una aplicación como root si no tuviera que depender de gksu?

sudoque vi dijo algo sobre la integración del soporte para gksu en sudo. Otra cosa a tener en cuenta essudo -Aque, según la página de manual, inicia un (posiblemente) inicio de sesión gráfico.Respuestas:
Primero cree un
.policyarchivo de acción en/usr/share/polkit-1/actions/. Es convencional nombrar archivos de acción de forma "jerárquica de proveedores", comocom.ubuntu.pkexec.gparted.policyoorg.debian.apt.policyLuego pegue el siguiente contenido:
Reemplace
[Short/Full Program Name/Path]con valores apropiados, por ejemplogedit,gedit Text Editory/usr/bin/gedit.<action id>el valor no necesita coincidir con el nombre de archivo elegido (y un solo archivo puede contener múltiples acciones), pero convencionalmente el nombre de archivo es el prefijo para todas sus acciones.Después de guardar el archivo, el programa específico se ejecutará con X y GUI y demás.
Parece que hay otra solución: agregue la siguiente línea en /etc/pam.d/polkit-1:
fuente
Otra solución para los scripts de usuario: determine las variables de entorno apropiadas dentro de su script.
Puede usar un fragmento como el siguiente para hacer esto:
(basado en la
getXuserfunción ACPI )Si encuentra que su
.desktoparchivo aún no funciona, puede intentar envolverlopkexec commandlineen unshfragmento, por ejemplo:El último problema es un error conocido, aparentemente:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690339
https://bugzilla.xfce.org/show_bug.cgi?id=9373
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=650038
https://bugzilla.gnome.org/show_bug.cgi?id=686059
fuente