Un cliente no obtiene autorización para conectar con el servidor

TÍTULO:			Un cliente no obtiene autorización para conectar con el servidor
VERSIÓN LFS:	Cualquiera
AUTOR:			Simon Perreault <nomis80@videotron.ca>
TRADUCTOR:	Proyecto LFS-ES

SINOPSIS:	Cómo hacer que root pueda conectar con el servidor X mientras
		está siendo empleado por otro usuario.

RECETA:

Perrin Aybara <vze24938@verizon.net> hizo la pregunta siguiente:
"Bien, esto es algo raro. Cuando trato de ejecutar algo gráfico como root (por
ejemplo, la última vez: el programa de instalación de realplayer 7), todo lo
que consigo es esto: 

Xlib: connection to ":0.0" refused by server
Xlib: Client is not authorized to connect to server
Error: Can't open display: :0.0

Así mismo, cuando compruebo la salida del servidor X en un terminal, obtengo:

AUDIT: Sun Dec 31 21:24:00 2000: 18735 X: client 5 rejected from local
host

Me sale eso tratando de instalar Real Player 7, me sale eso cuando compilo el
módulo de Glade-Perl (en la fase "make test" lanza una interfase gráfica que
puedes probar), y recuerdo que me salió también otro par de veces (aunque no
le presté demasiada atención, no importa ahora qué fuera lo que estuviera
haciendo exactamente). Uso XFree86 4.0.2 como usuario normal (no como root), y
intento ejecutar las órdenes anteriores como root desde un terminal xterm.
Siempre había podido ejecutarlas antes, por lo que la situación me resulta
ahora mismo un tanto extraña. Gracias por adelantado..."



El problema principal consiste en que root no puede conectar con el servidor X
mientras está siendo empleado por otro usuario. Esto sucede con bastante
frecuencia, por ejemplo cuando se instalan programas. Una posible solución la
propuso Andy <atark@thepipeline.net> diciendo lo siguiente:

"Prueba "xhost +" como el usuario que lanzó las X en primer lugar, y con eso
debería bastar. Puedes también probar a hacer "export DISPLAY=localhost:0.0"
como root."

La órden "xhost +" autoriza a todo el mundo a ejecutar programas en la
pantalla :0.0. Eso incluye a root. Y también a cualquier otro usuario. O sea
que si ves aparecer otros programas, pudiera ser que alguien haya entrado con
intención de destrozarte el sistema, por lo que tal vez te interese en ese
momento impedirlo, algo que puedes lograr con la órden "xhost -". Para
restringir el acceso de modo que sólo se autorice a root, emplea la órden  
"xhost root". La variable de entorno DISPLAY se usa para definir qué pantalla
se utiliza al lanzar un programa X.

"Otra forma de hacerlo, si haces "su" a root:

Asegúrate de que el fichero /root/.Xauthority es un enlace al fichero 
.Xauthority del usuario.  Asegúrate también de restaurar el fichero 
original .Xauthority de root antes de entrar en las X como root."

Esta puede ser una buena forma de evitar eso de "xhost +" si jamás entras como
root. 

Por mi parte, me he encontrado algunas veces con este problema, pero en pocas
ocasiones y no soy capaz de reproducirlo. Normalmente, root puede utilizar
cualquier pantalla que desee sin que ningún usuario pueda impedirlo. He
tratado de cerrar el acceso de todos los demás usuarios a mi pantalla, pero
root aún podía entrar. En resumen: si te pasa esto, la solución es la
indicada.