No se puede conectar al servidor X: 0.0 como superusuario


10

Cuando estoy en línea, aparece el siguiente error y la herramienta no se inicia:

[root@dhcppc9 lin64]# ./ise
No protocol specified
_pn: cannot connect to X server :0.0

Pero todo está bien cuando no soy un superusuario. ¿Por qué eso?

Editar

[root@dhcppc9 lin64]# export $(dbus-launch)
No protocol specified

¿cualquier sugerencia?

también

[root@dhcppc9 lin64]# xhost [+]
No protocol specified
xhost:  unable to open display ":0.0"

Este es un clásico. Puede hacer export $(dbus-launch)o usar xhost [+]para poder iniciar programas usando X y su cuenta de superusuario.
41754


Puede ser $ xhostpara ver el acceso actual y $ xhost +habilitar el acceso desde cualquier host. A menudo lo haces desde una terminal virtual que conoces con seguridad que puede generar programas usando X.
41754

@galegosimpatico: ¿por qué el lanzamiento de un servidor dbus resolvería este problema?
Bananguin

Cuando no eres superusuario, ¿qué echo $DISPLAYmuestra? ¿A qué usuario pertenece el proceso xserver que desea utilizar? (puede averiguar esto último usando, por ejemplo ps faux)
Bananguin

Respuestas:


12

Un programa X necesita dos piezas de información para conectarse a una pantalla X.

  • Necesita la dirección de la pantalla, que suele ser :0cuando estás conectado localmente o:10 , :11, etc, cuando está conectado de forma remota (pero el número puede cambiar dependiendo de la cantidad de conexiones X son activas). La dirección de la pantalla normalmente se indica en la DISPLAYvariable de entorno.

  • Necesita la contraseña para la pantalla. Las contraseñas de visualización X se llaman cookies mágicas . Las cookies mágicas no se especifican directamente: siempre se almacenan en archivos de autoridad X, que son una colección de registros de la forma "pantalla :42tiene cookie 123456". El archivo de autoridad X normalmente se indica en la XAUTHORITYvariable de entorno. Si $XAUTHORITYno está configurado, los programas usan~/.Xauthority .

Ver Abrir una ventana en una pantalla X remota (¿por qué "No se puede abrir la pantalla")? para más detalles.

En tu caso, DISPLAY está configurado, pero los programas evidentemente no pueden encontrar el archivo cookie. Verifique el valor de XAUTHORITYen su sesión y debajo su.

Si XAUTHORITYno está configurado en su sesión y suestablece la HOMEvariable de entorno en el directorio de inicio de la raíz, entonces debe configurarXAUTHORITY de /home/msz/.Xauthoritydonde /home/mszes su directorio personal.

Si su elimina XAUTHORITYdel entorno, vuelva a colocarlo o configure suno hacerlo.

Si su directorio de inicio está en algunos sistemas de archivos como NFS, es posible que la raíz no pueda leerlo directamente. En ese caso, puede copiar el .Xauthorityarchivo a una ubicación diferente en un sistema de archivos que no sea NFS:

XAUTHORITY_COPY=$(umask 077; mktemp)
cat "${XAUTHORITY:-~/.Xauthority}" "$XAUTHORITY_COPY"
XAUTHORITY="$XAUTHORITY_COPY" su
rm "$XAUTHORITY_COPY"
unset XAUTHORITY_COPY

1
Creé un enlace simbólico y funcionó también. Aquí está:ln -s /home/otheruser/.Xauthority ~
Can Geliş

XAUTHORITY para mí se estableció como un archivo que ya no existía:
pbhj

5

¡Estás ejecutando xhost como root!

ejecuta xhost como el usuario normal xhost +, luego vuélvete root y vuelve a intentarlo.

por cierto, como otros han señalado, xhost +permite a cualquier usuario de cualquier host


Muchos sistemas modernos están configurados para que xhostno funcione. Si lo hace, entonces al menos corre xhost +localhost, xhost +¡ no !
Gilles 'SO- deja de ser malvado'

Entiende, ese es un buen punto. Gracias por su consejo.
X Tian

Fue mi problema! ¡Gracias, resolvió todo! Simplemente lo ejecuté desde no root.
Quidam hace

0

XAUTHORITY para mí se configuró como un archivo que ya no existía:

$ echo $XAUTHORITY

/tmp/xauth-1000-_0

Así que lo hice

unset XAUTHORITY

y luego pude conectarme a mi aplicación como root usando kdesudo (en este caso kdesudo bleachbit)


0

Ejecutar como usuario normal

xhost + localhost

luego habilite super usuario por

sudo su 

finalmente ve al ejemplo del servidor

cd /usr/local/Ampps

finalmente ejecuta ./Ampps

gracias en 2020


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.