Ejecutar aplicaciones X como root en un display de usuario


Desde hace un tiempo, en la rama inestable (Sid) de la Debian se ha incluido la opción -nolisten tcp en el script de arranque del servidor X. Esto imposibilita la ejecución de aplicaciones X como usuario root por el método tradicional (xhost +localhost; su -; export DISPLAY=:0.0)

Pero como siempre los señores de Debian no andan desencaminados. ¿Para qué leches vamos a abrir
por defecto el puerto tcp 6000 cada vez que arrancamos las X si sólo trabajamos con aplicaciones locales
sobre nuestro display?. Además, eso nos obliga a usar un método más seguro para ejecutar
aplicaciones X como root, ya que lo del xhost sin el puerto tcp no funciona.
El otro método consiste en usar el método de control de acceso llamado MIT-MAGIC-COOKIE. Éste método consiste en generar una clave cada vez que se arranca el servidor X, y sólo permitir el acceso a los clientes que comuniquen esa clave. Para habilitar este método de acceso tendremos que editar el fichero /etc/X11/xinit/xserverrc y añadir la opción -auth $HOME/.Xauthority en la línea que arranca el servidor X. El fichero tiene que quedar como algo del estilo:

#!/bin/sh
exec /usr/bin/X11/X -dpi 100 -nolisten tcp -auth $HOME/.Xauthority

Esto hace que cada vez que un usuario arranca el servidor X se almacene la MAGIC-COOKIE esa en el fichero $HOME/.Xauthority.

Para acceder como root al display hay hacer que los clientes X comuniquen la misma MAGIC-COOKIE que ha creado el arranque del servidor X. Eso se hace con el comando xauth merge ~usuarioX/.Xauthority, dónde usuarioX es el id del usuario que ha ejecutado las X. Por ejemplo, para ejecutar un xeyes como root haremos:

[zebub@celaeno zebub]$ su –
Password: **********
celaeno:~# xauth merge ~zebub/.Xauthority
celaeno:~# export DISPLAY=:0.0
celaeno:~# xeyes &

Tiene razón Beowulf. Hay otra solución que es incluso más elegante que la mía y, sobretodo, mucho más cortita:

[zebub@celaeno zebub]$ xhost LOCAL:
[zebub@celaeno zebub]$ su –
Password: **********
celaeno:~# export DISPLAY=:0.0
celaeno:~# xeyes &

Y no hace falta tocar ningún fichero ni hacer historias raras. 🙂

Pero si os llego a poner la de Beowulf no me daba a pie a explicar lo del MAGIC-COOKIE. ¡Con lo interesante que es!
X”DDD

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1038 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.