En el X Window System, un X Display Manager (XDM) o gestor de pantalla X es un gestor de sesiones gráfico que permite comenzar una sesión sobre un servidor X desde la misma u otra computadora. Un gestor de pantalla presenta al usuario con una pantalla de login que solicita el nombre de usuario y su contraseña. Una sesión comienza cuando el usuario entra con éxito una combinación válida de nombre de usuario y contraseña.
Cuando el gestor de pantalla corre en la computadora del usuario, inicia el servidor X antes de presentar al usuario la pantalla de login, opcionalmente repitiendo esto cuando el usuario cierra la sesión. En esta condición, el gestor de pantalla realiza en el X Window System la funcionalidad del init, getty y autentifica al usuario en el terminal en modo de caracteres. Cuando el gestor de pantalla corre en una computadora remota, actúa como un servidor de telnet, solicitando el nombre de usuario y la contraseña y comenzando una sesión remota.
Piense en XDM como proveedor de la misma funcionalidad que la utilidad getty(8). Esto quiere decir que se encarga de los ingresos del sistema en la pantalla a la que está conectado y arranca el gestor de sesiones para el usuario (normalmente un gestor de ventanas X). XDM entonces espera a que este programa termine, señalando que el usuario ha terminado y que se debería desconectar de la pantalla. En este punto XDM puede mostrar las pantallas de entrada al sistema y de selección de pantalla para que el siguiente usuario intente acceder al sistema.
Esto es útil para diferentes situaciones tales como "Terminales X" con escritorios mínimos y grandes servidores de red (LTSP, cliente liviano). Como X Window System es independiente del protocolo y de la red hay muchas posibles configuraciones para ejecutar clientes y servidores X en diferentes equipos conectados a una red. XDM da una interfaz gráfica para elegir a qué pantalla se quiere conectar y solicitar la información de autenticación, como el nombre de usuario y le contraseña.
También es útil para múltiples usuarios trabajando con un mismo computador (configuración multiseat), en donde cada usuario tiene su propio pantalla, teclado y ratón, y comparten los recursos del computador, como el CPU, la tarjeta madre, la memoria RAM, el disco duro, etc., abaratando significativamente los costos.
X11 Release 3 introdujo el gestor de pantalla de X Window (XDM) en octubre de 1988, dirigido a soportar los equipos de terminales X que por entonces apenas comenzaban a entrar en el mercado. Esta versión sufrió de varios problemas, el más notable es que no podía detectar cuando los usuarios apagaban y encendían los terminales X. En esa versión, el XDM solo sabía sobre un terminal X si este figuraba en el archivo Xservers, pero XDM solo consultaba este archivo cuando se iniciaba. Así, cada vez que un usuario encendía y apagaba un terminal, el administrador de sistema tenía que enviar una señal SIGHUP a XDM para que releyese el archivo Xservers.
La introducción de X11R4 en diciembre de 1989 para corregir problemas en la implementación de X11R3 trajo consigo el protocolo XDMCP. Con XDMCP, el servidor X debe solicitar activamente una conexión de gestor de pantalla al anfitrión. Por lo tanto, un servidor X usando XDMCP ya no necesita una entrada en Xservers.
Un gestor de pantalla puede correr en la misma computadora donde el usuario está sentado o en otro computador remotamente. En el primer caso, el gestor de pantalla inicia uno o más servidores X, exhibiendo la pantalla de login al principio y (opcionalmente) cada vez que el usuario cierra sesión. En el segundo caso, el gestor de pantalla trabaja según el protocolo XDMCP.
El protocolo XDMCP ordena que el servidor X se inicie autónomamente y se conecte con el gestor de pantalla. En el paradigma del X Window System, el servidor corre en la computadora que proporciona los dispositivos de exhibición (pantalla) y de entrada (teclado y ratón). Un servidor se puede conectar, usando el protocolo XDMCP, a un gestor de pantalla corriendo en otra computadora, solicitando a éste que comience la sesión. En este caso, el servidor X actúa como cliente gráfico de telnet mientras que el gestor de pantalla actúa como un servidor del telnet: los usuarios inician programas de la computadora que corre el gestor de pantalla, mientras que su entrada y salida ocurren en la computadora donde el servidor (y el usuario) se sienta.
Un administrador puede configurar un servidor X corriendo en el computador o el terminal de usuario usado, o para conectarse con un gestor específico de pantalla, o para mostrar una lista de convenientes anfitriones (hosts) corriendo potenciales gestores de pantalla X. Un programa seleccionador de XDMCP (XDMCP Chooser) permite al usuario seleccionar un anfitrión entre los que el terminal puede conectarse:
El servidor XDMCP a menudo se presentará en esta lista. Cuando el usuario selecciona un anfitrión de la lista, el servidor X corriendo en la máquina local se conectará con el gestor de pantalla X de la computadora remota seleccionada.
El protocolo de control del gestor de pantalla X utiliza el puerto UDP 177. Un servidor X solicita que un gestor de pantalla inicie una sesión enviando un paquete Query
. Si el gestor de pantalla permite el acceso para ese servidor X, responde enviando un paquete Willing
de retorno al servidor X. (El servidor X también puede enviar paquetes de BroadcastQuery
o IndirectQuery
para iniciar una sesión - este mecanismo para solicitar una sesión es análogo a usar el DHCP para solicitar una dirección IP.)
El gestor de pantalla debe authenticarse en el servidor. Para hacer esto el servidor X envía un paquete Request
al gestor de pantalla, que retorna un paquete Accept
. Si el paquete Accept
contiene la respuesta que el servidor X espera, el gestor de pantalla es autentificado. Producir la respuesta correcta puede requerir al gestor de pantalla tener acceso a una clave secreta, por ejemplo. Si la autentificación tiene éxito, el servidor X envía un paquete Manage
para informar al gestor de pantalla. Entonces, el gestor de pantalla muestra la pantalla de login conectándose con el servidor X como cliente regular de X.
Durante la sesión, el servidor puede enviar en intervalos los paquetes KeepAlive
al gestor de pantalla. Si el gestor de pantalla no puede responder con un paquete Alive
dentro de un cierto tiempo, el servidor X presume que el gestor de pantalla ha cesado su funcionamiento, y puede terminar la conexión.
Un problema con el XDMCP es que, similar al telnet, la autentificación ocurre sin cifrado y si el snooping es posible, dejando al sistema vulnerable al ataque. Es más seguro usar un túnel de ssh para el tráfico de X.[1]
El daemon XDM se encuentra en /usr/X11R6/bin/xdm
. Este programa se puede arrancar en cualquier momento como root
y empezará a gestionar la pantalla X en la máquina local. Si se quiere que XDM arranque cada vez que la máquina se encienda puede hacerlo añadiendo una entrada a /etc/ttys
. Hay una línea en el fichero /etc/ttys
por defecto para arrancar el dæmon XDM en una terminal virtual:
Por defecto esta entrada está deshabilitada; para habilitarla cambie el campo 5 de off
a on
. El primer campo es el nombre de la terminal que este programa gestionará: ttyv8
. Esto significa que XDM empezará a ejecutarse en la terminal virtual número 9.
El directorio de configuración de XDM esta en /usr/X11R6/lib/X11/xdm
. En este directorio hay varios ficheros usados para cambiar el comportamiento y la apariencia de XDM. Normalmente encontrará estos ficheros:
En este directorio también hay unos cuantos programas y “scripts” usados para arrancar el escritorio cuando XDM se está ejecutando. La sintaxis exacta y el uso de todos estos ficheros se describe en xdm(1)
.
El X Window System suplen al XDM como su gestor de pantalla estándar.
Los programadores han desarrollado a otros gestores de pantalla X, tanto comerciales como libres, ofreciendo funcionalidad adicional sobre la gestión de pantalla básica:
En la mayoría de las distribuciones Linux, el gestor de pantalla por defecto es seleccionado en el archivo /etc/X11/default-display-manager
Escribe un comentario o lo que quieras sobre X Display Manager (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)