Client xdm

Le client xdm est un gestionnaire de connexion. C'est un démon (daemon) lancé sur chaque machine où peuvent se connecter les utilisateur.

Les échanges entre ces clients particuliers et les serveurs X sont régis par le protocole XDMCP.

Pour certains environnements graphiques comme KDE, le client xdm est remplacé par un client spécifique comme kdm pour KDE.

Protocole XDMCP

L'essentiel de ce protocole est présenté ici sans s'attarder sur les détails. Le début des échanges est initié par le serveur X qui envoie une requête Query ou BroadcastQuery. Les rôles client/serveur sont ici inversés puisque c'est le serveur qui adresse une requête au client xdm.

Le premier type de requête s'adresse à un client xdm particulier alors que le second sollicite une réponse de tous les clients xdm qui sont actifs sur le réseau. Le premier cas est typique d'un serveur X sur un ordinateur qui s'adresse au client X de la même machine. Le second cas concerne plutôt les terminaux X qui recherchent toutes les machines du réseau sur lesquelles les utilisateurs peuvent se connecter.

Le serveur répond par un message Willing pour dire qu'il accepte une connexion ou par un message Unwilling pour dire qu'il refuse.

Dans le cas d'une requête BroadcastQuery, le serveur X collecte tous les réponses reçues et les propose à l'utilisateur par l'intermédiaire d'un menu. Lorsque l'utilisateur effectue son choix, le serveur X recontacte le client xdm de la machine choisie avec une requête Query pour s'assurer qu'il est encore actif.

C'est dans une requête Query qu'un serveur précise les modes d'authentification qu'il supporte. Le client xdm répond dans la réponse Willing le mode qui va être utilisé.

Après une réponse Willing, le serveur envoie une requête Request qui initie vraiment la connexion. Le client xdm répond par un message Accept pour accepter ou par un message Decline pour refuser.

Le serveur envoie finalement un message Manage contenant l'identifiant 32 bits de la session.

Le client xdm affiche alors la fenêtre qui permet à l'utilisateur de saisir son login et son mot de passe. Ceci fait, le client xdm exécute le shell-script .Xsession. Ce ficher contient des commandes de configuration et des lancements d'application. Des applications comme xbiff et xclock sont typiquement lancées dans ce fichier mais d'autres applications comme des fenêtres de terminaux ou un éditeur peuvent aussi être lancées au démarrage. Le gestionnaire de fenêtre est aussi lancé au démarrage par ce shell-script. Le chargement de la base de données des ressources avec xrdb est aussi souvent fait le script .Xsession

.