Re: Sobre xhost.
El 20/03/08, Luis Rodrigo Gallardo Cruz <rodrigo@nul-unu.com> escribió:
> On Thu, Mar 20, 2008 at 07:39:44PM -0300, Marcelo Guzmán wrote:
> > Saludos listeros,
> >
> > Les cuento:
> > Al ejecutar como usuario en la consola cualquier aplicación que
> > necesite recurrir al servidor gráfico para correr (ejemplo kwrite), me
> > funciona sin problemas;
> > Pero al hacerlo como root me lanza el siguiente error:
> >
> > debian:/home/marcelo# kwrite
> > Xlib: connection to ":0.0" refused by server
> > Xlib: No protocol specified
> >
> > kwrite: cannot connect to X server :0.0
> >
> > Googleando por ahí encontré que ejecutando el comando "xhost +" como
> > usuario se arreglaba el problema y efectivamente puedo ejecutar como
> > root cualquier aplicación.
>
>
> Resumen ejecutivo:
>
> El servidor X puede usar mecanismos de control de acceso para
> determinar a qué clientes permite conectarse. Esto es opcional (quizá
> por eso en KDE no lo veías, aunque en realidad lo dudo) pero muy buena
> idea, ya que un programa que pueda conectar al servidor X puede, por
> lo menos en principio, observar el contenido de todas tus ventanas e
> interceptar tu teclado y mouse.
>
> Dicho control de acceso se implementa (normalmente) por medio de
> variables de entorno que apuntan a la "clave secreta" (no es
> exáctamente eso, pero bueno)
>
> Cuando ejecutas una sesión de otro usuario dentro de un terminal, el
> entorno no se copia, por lo que los programas que corran desde ahí no
> tienen la clave para conectarse.
>
> El programa xhost controla el uso de dicho control de acceso. En
> particular,
> $ xhost +
> deshabilita por completo esa caracteristica. Lo cual es, como ya dije
> arriba, en general mala idea.
>
> ¿Soluciones? Ordenadas de mayor a menor en incomodidad, y de menor a
> mayor en cuanto tienes que aprender para usarlas:
>
> 1. Sigue usando 'xhost +', pero ten cuidado de reactivar el control de
> acceso tan pronto como te sea posible (con 'xhost -').
>
> 2. Dale acceso a root a la "clave". A menos que tu máquina tenga una
> configuración *muy* inusual, decir
> $ export XAUTHORITY=~usuario/.Xauthority
> en tu sesión de root justo después de iniciarla debería funcionar
> (reemplaza "usuario" por el nombre de tu usuario).
>
> 3. Usa un método de ejecutar cosas como root que sí copie el
> entorno. sudo es tu amigo. "man sudo" es una buena forma de conocer a
> tus amigos.
>
Puedes usar gksu para llamar a los programas gráficos como root.
Suerte.
Marcos Delgado
Reply to: