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.