En el sistema X Window , un administrador de pantalla X es un administrador de inicio de sesión gráfico que inicia una sesión de inicio de sesión en un servidor X desde la misma computadora o desde otra .
Un administrador de pantalla presenta al usuario una pantalla de inicio de sesión . Una sesión comienza cuando un usuario ingresa exitosamente una combinación válida de nombre de usuario y contraseña .
Cuando el administrador de pantalla se ejecuta en la computadora del usuario, inicia el servidor X antes de presentarle al usuario la pantalla de inicio de sesión, repitiendo opcionalmente cuando el usuario cierra la sesión. En esta condición, el DM realiza en el sistema X Window la funcionalidad de getty e inicio de sesión en terminales en modo carácter . Cuando el administrador de pantalla se ejecuta en una computadora remota, actúa como un servidor telnet , solicita un nombre de usuario y una contraseña e inicia una sesión remota.
X11 Release 3 introdujo gestores de pantalla en octubre de 1988 con el objetivo de dar soporte a los terminales X independientes , que recién salían al mercado. Varios administradores de pantalla continúan en uso rutinario para proporcionar un mensaje gráfico de inicio de sesión en estaciones de trabajo informáticas independientes que ejecutan X. X11R4 introdujo el Protocolo de control del administrador de pantalla X ( XDMCP ) en diciembre de 1989 para solucionar problemas en la implementación de X11R3.
XDM (el Administrador de visualización de ventanas X) se originó en X11R3. Esta primera versión, escrita por Keith Packard del MIT X Consortium, tenía varias limitaciones, la más notable de las cuales era que no podía detectar cuándo los usuarios apagaban y encendían los terminales X. En X11R3, XDM sólo conocía un terminal X a partir de su entrada en el archivo Xservers , pero XDM sólo consultaba este archivo cuando se iniciaba. Por lo tanto, cada vez que un usuario apagaba y encendía una terminal, el administrador del sistema tenía que enviar una señal SIGHUP a XDM para indicarle que volviera a escanear los servidores X.
XDMCP llegó con la introducción de X11R4 (diciembre de 1989). Con XDMCP, el servidor X debe solicitar activamente una conexión de administrador de pantalla desde el host. Por lo tanto, un servidor X que utilice XDMCP ya no requiere una entrada en Xservers .
Un administrador de pantalla puede ejecutarse en la misma computadora donde se encuentra el usuario (iniciando uno o más servidores X, mostrando la pantalla de inicio de sesión al principio y (opcionalmente) cada vez que el usuario cierra la sesión) o en una remota, trabajando de acuerdo con el XDMCP. protocolo.
El protocolo XDMCP exige que el servidor X se inicie de forma autónoma y se conecte al administrador de pantalla. En el paradigma del sistema X Window, el servidor se ejecuta en la computadora que proporciona los dispositivos de visualización y entrada. Un servidor puede conectarse, utilizando el protocolo XDMCP, a un administrador de pantalla que se ejecuta en otra computadora, solicitándole que inicie la sesión. En este caso, el servidor X actúa como un cliente telnet gráfico mientras que el administrador de pantalla actúa como un servidor telnet: los usuarios inician programas desde la computadora que ejecuta el administrador de pantalla, mientras que su entrada y salida tienen lugar en la computadora donde está el servidor (y el usuario) se sienta.
Normalmente, un administrador puede configurar un programa XDMCP Chooser que se ejecuta en la computadora local o en el terminal X para conectarse al administrador de pantalla X de un host específico o para mostrar una lista de hosts adecuados entre los que el usuario puede elegir. La mayoría de las implementaciones permiten que dicha lista contenga:
Cuando el usuario selecciona un host de la lista, el Selector XDMCP que se ejecuta en la máquina local enviará un mensaje al administrador de pantalla de la computadora remota seleccionada y le indicará que conecte el servidor X en la computadora o terminal local.
El protocolo de control del administrador de pantalla X (XDMCP) utiliza el puerto UDP 177. Un servidor X solicita que un administrador de pantalla inicie una sesión enviando un paquete. Si el administrador de pantalla permite el acceso a ese servidor X, responde enviando un paquete de regreso al servidor X. (El servidor X también puede enviar paquetes o para iniciar una sesión; este mecanismo para solicitar una sesión se asemeja al uso de DHCP para solicitar una dirección IP).Query
Willing
BroadcastQuery
IndirectQuery
El administrador de pantalla debe autenticarse en el servidor. Para hacer esto, el servidor X envía un Request
paquete al administrador de pantalla, que devuelve un Accept
paquete. Si el Accept
paquete contiene la respuesta que espera el servidor X, el administrador de pantalla está autenticado. Para producir la respuesta correcta, es posible que sea necesario que el administrador de pantalla tenga acceso a una clave secreta , por ejemplo. Si la autenticación tiene éxito, el servidor X envía un Manage
paquete para informar al administrador de pantalla. Luego, el administrador de pantalla muestra su pantalla de inicio de sesión conectándose al servidor X como un cliente X normal.
Durante la sesión, el servidor puede enviar KeepAlive
paquetes al administrador de pantalla a intervalos. Si el administrador de pantalla no responde con un Alive
paquete dentro de un tiempo determinado, el servidor X supone que el administrador de pantalla ha dejado de ejecutarse y puede terminar la conexión.
Un problema con XDMCP es que, al igual que con telnet , la autenticación se realiza sin cifrar. Si es posible espiar, esto deja al sistema vulnerable a ataques. Es más seguro utilizar un túnel ssh para el tráfico X. [1]
El sistema X Window proporciona XDM como administrador de pantalla estándar.
Los programadores han desarrollado otros administradores de pantalla X, tanto comerciales como gratuitos, que ofrecen funcionalidad adicional a la administración de pantalla básica:
En algunas distribuciones de Unix, el administrador de pantalla predeterminado se selecciona en el archivo $PREFIX/etc/X11/default-display-manager.