No se puede conectar a X Server cuando se ejecuta la aplicación con sudo


29

Cuando estoy ejecutando algún software usando el sudocomando, muestra un error como

cannot connect to X server

Por ejemplo, si ejecuto el siguiente comando:

$ sudo gedit /etc/profile

Estoy recibiendo el siguiente comando

(gedit:6758): WARNING **: Command line `dbus-launch --autolaunch=84b871d735f31ffe014dc9ba00000009 --binary-syntax --close-stderr' 
exited with non-zero exit status 1: 
Autolaunch error: X11 initialization failed. 
Cannot open display:
Run 'gedit --help' to see a full list of available command line options.

O si estoy ejecutando super-boot-managerrecibo el siguiente error

buc: cannot connect to X server

Por favor ayuda.


¿Por dónde correr super-boot-mangera partir?
— Thor

Primero traté de correr super-boot-managerdirectamente desde la unidad luncher, no funcionó. Luego lo probé desde la terminal, luego recibí esos errores de masaje.
— Apurba

¿Como en una terminal dentro del entorno gráfico de usuario? ¿Qué hace: echo $DISPLAYdecir? Debe ejecutar sin sudoque super-boot-managerse ejecuta sudointernamente.
— Thor

echo $DISPLAYestá dando :0.0. Y no estoy corriendo super-boot-managercomo sudo. Estoy ejecutando solo usando el comando super-boot-managerde la terminal.
— Apurba

1
Finalmente el problema está resuelto. Acabo de agregar la línea: Defaults env_keep="DISPLAY XAUTHORITY"al final de visudo. Gracias a todos, especialmente a @Thor por su amable ayuda.
— Apurba

Respuestas:


39

Debe permitir que el usuario root acceda al servidor X:

xhost local:root

Y apunte el comando a la derecha DISPLAY:

sudo DISPLAY=$DISPLAY gedit /etc/profile

Eso resolvió el problema con la apertura geditcomo sudo, pero aún no puede almorzar super-boot-manager. Está mostrando el mismo error
— Apurba

15

Finalmente el problema está resuelto. Acabo de agregar la línea:

Valores predeterminados env_keep = "DISPLAY XAUTHORITY"

al final de visudo.

Para hacer eso tienes que correr

sudo visudo

abrirá el archivo y luego agregará la línea anterior al final.

Gracias a todos, especialmente a @Thor por su amable ayuda


1
Por defecto env_keep = "DISPLAY" funciona para mí.
— bagustris

He estado buscando por todas partes esta respuesta para siempre. Desearía poder votarles a ustedes dos veces por sus respuestas. ¡Muchas gracias! :)
— Ev-

4

Complementando la respuesta de @ Thor:

Corre xhost local:rootantes sudo gedit. Para hacer esto permanente, agregue la línea

xhost local:root

al archivo ~ / .xinitrc 1 . Cree el archivo si no existe.


[1] /ubuntu//a/720120/452398


Gracias por proporcionar una respuesta que proporciona una solución no permanente.
— 2NinerRomeo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.