gksu: Gtk-WARNING **: no se puede abrir la pantalla:: 0

40

De repente, gksu dejó de funcionar para mí:

~$ gksu gparted

(gpartedbin:24252): Gtk-WARNING **: cannot open display: :0

Lo mismo sucede con gparted-pkexec:

~$ gparted-pkexec 
No protocol specified

(gpartedbin:25454): Gtk-WARNING **: cannot open display: :0

¿Qué podría estar causando esto?

No estoy ejecutando esto a través de SSH o VNC. Este es localhost en una ventana de terminal normal .

d_inevitable
fuente
No trabaja en una interfaz gráfica de usuario ni intenta ejecutar un programa en un sistema (por ejemplo, a través de ssh) que no proporciona ninguna interfaz gráfica.
AB
1
@AB Debo aclarar que esto no es a través de ssh. Está en el host local en una ventana de terminal muy normal. La apertura de hecho separada del menú de la aplicación tiene el mismo resultado.
d_inevitable
No debería tener que usar gksupara ejecutar GParted. gpartedusa polkit para obtener privilegios elevados.
muru
@muru cuando corro gpartedsin gksullegarRoot privileges are required for running gparted.
d_inevitable
Ok, prueba gparted-pkexec(sin gksu) o gksu gpartedbin.
muru

Respuestas:

67

Si ejecuta Ubuntu 17.10 o posterior, este problema puede surgir cuando una aplicación no se ha actualizado con soporte completo para Wayland. Como solución alternativa hasta que se actualice la aplicación, puede ejecutar

xhost +SI:localuser:root

lo que permitirá al rootusuario mostrar aplicaciones en su escritorio. Consulte también estas preguntas y respuestas para conocer otras posibles soluciones: ¿Por qué no funciona gksu / gksudo o inicia una aplicación gráfica con sudo en Wayland?

fuente

Ojo cutton
fuente
@MDMower Thx para editar, aprendí algo nuevo =)!
Cutton Eye
@pomsky Thx por agregar el enlace;)!
Cutton Eye
En 18.04, X-Org se usará nuevamente como predeterminado. Entonces este problema debería desaparecer entonces. ver
Cutton Eye
11

Intente ejecutar xhost +localhosten su terminal y luego ejecute el comando nuevamente. Esto permite a todos los usuarios de su sistema (es decir, root) abrir ventanas en su pantalla. Asegúrese de usar + localhost y no simplemente +, ya que es más seguro permitir conexiones solo desde localhost que desde cualquier lugar.

Para hacer esto permanente, edite el ~/.xinitrcarchivo así:

correr gedit ~/.xinitrc

Edite el archivo para que se vea así (debe estar vacío al inicio):

#! /bin/bash
xhost +localhost &

Ahora guarde el archivo, cierre sesión e inicie sesión. Ahora todo debería funcionar bien con sudo.

No puedo reproducir su problema en 14.04, pero esto me funcionó en el pasado cuando sudo / gksu arrojó este error.

Fuentes:

  1. http://www.nikhef.nl/~mjg/xhost_plus.html
  2. https://forums.opensuse.org/showthread.php/405624-sudo-doesnt-open-X-programs
  3. https://wiki.ubuntu.com/CustomXSession
Mark Paskal
fuente
1
Esto funciona de hecho. Entonces, ¿eso significa que es una restricción de control de acceso? ¿Alguna idea de cuál podría ser la causa de esto?
d_inevitable
Sí, es una característica de seguridad de X. Solo permite conexiones de su usuario al servidor x hasta que se le indique lo contrario, creo. No estoy muy seguro de por qué es necesario para algunas aplicaciones y no para otras, y no tengo ni idea de por qué lo estaría haciendo por separado de todas las cosas. ¿Quizás estabas jugando y reforzando la seguridad en alguna parte?
Mark Paskal
2
Esto produce un error: xhost: no se puede abrir la pantalla ""
IgorGanapolsky
55
En redis , se sugirió su uso xhost +local:. Después de eso pude iniciar gparted desde la terminal, pero el uso xhost +localhostno funcionó.
rmin
1
¡En efecto! xhost +local:arreglado el mío! Produce non-network local connections being added to access control listlo que se necesita.
Lobner
5

Ejecute lo siguiente en su terminal:

nano /home/user/.bashrc # user = name of your user

Agregue la siguiente línea al final.

export XAUTHORITY=$HOME/.Xauthority
Wilder Hernández García
fuente
2
¿Sería útil si pudiera agregar alguna explicación de cómo esto resuelve el problema y si tiene algún efecto secundario adverso?
Geoff