XDM

Qu'est-ce que XDM ?

Dit simplement, XDM (X Display Manager - gestionnaire d'écrans X) peut être vu comme un remplacement graphique de l'invite de la ligne de commande « login ». En réalité, il peut vraiment faire beaucoup plus que cela.

Typiquement, il sera démarré par l'utilisateur « root » (ou par les scripts de démarrage du système) au lancement de la machine, et doit présenter à l'utilisateur une demande d'authentification (login) graphique. Il gérera ensuite les sessions X des utilisateurs après qu'ils se soient identifiés - c'est-à-dire qu'il lancera l'exécution de leur gestionnaire de fenêtres et d'applications.

Il peut être considéré comme une « simple demande d'authentification pour la machine locale », comme on peut le trouver installé par défaut par de nombreuses distributions Linux. Cependant, XDM peut également gérer des serveurs X distants et fournir des demandes d'authentification pour les terminaux X distants. En résumé, il n'est pas limité à la machine locale - il peut facilement gérer d'autres machines reliées par réseau.

XDM est un utilitaire largement configurable et ce document ne fera que « gratter le vernis » sur ce qui peut être fait. Ce document tente d'apporter assez d'informations pour configurer vos terminaux X et vos applications serveur pour les connecter entre eux. Le lecteur se reportera à la section intitulée “Ressources” pour de plus amples informations sur les sujets abordés ici.

Une note à propos de la sécurité : X (dans sa configuration par défaut) et XDMCP ne sont pas particulièrement sécurisés. Je suppose que vous faîtes fonctionner X sur un réseau de confiance et que la sécurité n'est pas un problème. Pour avoir des détails sur la façon de renforcer la résistance de vos connexions X (et d'autres détails sur l'utilisation des possibilités réseau de X), voyez le Howto « Exécuter des applications X distantes », lequel fait également partie du projet de documentation Linux (cf. la section intitulée “Ressources”).

Qu'est-ce qu'un terminal X ?

Ce terme peut être utilisé pour des configurations très diverses, mais dans sa forme la plus simple, c'est une machine avec une connexion réseau, clavier, souris et écran, configurée pour faire tourner le système X Window connecté à un serveur d'applications situé quelque part sur le réseau.

Il y a plusieurs configurations de terminaux X avec différents niveaux de fonctionnalités, allant du terminal dépourvu de disque aux stations de travail X complètes.

Un peu de terminologie

Avant d'aller plus loin, je dois expliquer les termes que j'utiliserai tout au long de ce document. En parlant de X, il y a pas mal de confusion entre qui est serveur de services pour qui. C'est encore plus vrai quand on considère des sessions distribuées sur un réseau faisant appel à des terminaux X.

Terminal X dépourvu de disque

Il s'agit d'une machine sans disque dur local, qui accomplira son démarrage grâce à une EPROM (ou autres) qui utilise une connexion réseau avec un serveur. Cela veut dire obtenir du serveur la configuration réseau, le système d'exploitation, la configuration système et toutes les applications. Cependant, une fois démarré, il se comportera comme un « terminal X limité » (voir ci-dessous). Typiquement, cette configuration combinera les protocoles réseau suivants pour pouvoir se lancer : BOOTP, DHCP, TFTP, etc. Reportez-vous à la section intitulée “Ressources” pour des références sur des documents qui détaillent la façon de construire des clients dépourvus de disque.

Terminal X limité

Il s'agit d'une machine qui démarre sur son disque local, lance un système d'exploitation et le programme serveur X, mais rien de plus. De cette façon, une invite d'authentification sera fournie sur la machine, pour permettre à l'utilisateur de s'identifier sur un « serveur d'applications » quelque part sur le réseau.

Station de travail X

Il s'agit d'une machine similaire au terminal X limité, mais qui fournira l'option de s'identifier sur la machine elle-même, et donc la possibilité de devenir une station de travail autonome (c'est-à-dire sans connectivité réseau) si nécessaire. La plupart des distributions peuvent être configurées directement comme une station de travail X autonome, avec une invite d'authentification graphique.

Serveur d'applications

Dans le contexte de ce document, j'utilise le terme de « serveur d'applications » pour décrire une machine qui fournit les applications (clients X) que notre terminal X veut exécuter. Il s'agit de toute application, des éditeurs aux navigateurs, en passant par le gestionnaire de fenêtres lui-même.

Serveur X

Il s'agit du programme qui contrôle l'affichage d'une machine disposant d'une console physique (écran, clavier, souris, etc.). Cela peut être vu comme un pilote pour une combinaison de carte graphique, clavier et souris. Il fournira ces moyens comme services à des clients X (d'où le terme de serveur) Reportez-vous au HOWTO de l'utilisateur X à la section intitulée “Ressources” pour plus de détails.

Client X

Il s'agit d'une configuration qui nécessite l'utilisation d'un serveur X pour accepter des entrées (clavier et souris) et fournir un affichage (écran). Un client X ne peut produire d'affichage sans les services d'un serveur X. Le serveur X peut s'exécuter localement (sur la même machine) ou ailleurs sur le réseau.

Ainsi, suivant les descriptions ci-dessus, une station de travail X peut être vue comme un terminal X limité et un serveur d'applications tournant sur la même machine.

Ce document envisagera les architectures des différentes options données ci-dessus, et décrira le rôle que XDM peut jouer dans leur mise en place.

Que peut faire XDM ?

XDM est chargé de fournir aux utilisateurs une invite d'authentification et de lancer leur session X. Il peut gérer des sessions locales (c'est à dire pour les personnes utilisant une station de travail X) ou des sessions sur des machines distantes, au travers d'une connexion avec un serveur d'applications, depuis un terminal limité ou dépourvu de disque.

Il y a deux modes opératoires :

  • requête depuis un serveur X ;

  • serveur X géré par XDM.

Requête depuis un serveur X

Les communications entre XDM et le serveur X réel (la machine possédant physiquement écran/clavier/souris) sont contrôlées au travers de XDMCP, le X Display Manager Control Protocol (Protocole de contrôle du gestionnaire d'écran X).

Ceci permet aux serveurs X d'envoyer des requêtes aux serveurs exécutant XDM. En fait, le serveur X doit dire « J'ai quelqu'un qui veut s'authentifier - donnez moi s'il vous plaît une invite d'authentification ». Dans ce mode opératoire, XDM ne fera rien tant que ça ne lui aura pas été demandé par votre serveur X.

La requête du serveur X peut prendre une de ces trois formes :

  • requête directe : le serveur X contacte un hôte donné, demandant à ce que le serveur lui présente une invite d'authentification sur son écran ;

  • diffusion : le serveur X diffuse un message sur le réseau, et le premier serveur faisant tourner XDM qui répond à cette diffusion sera celui qui présentera une invite d'authentification sur son écran ;

  • requête indirecte : le serveur X contacte un hôte donné, mais il lui demande quels autres hôtes il connaît sur le réseau. Cet hôte donné présentera alors à l'utilisateur une liste d'hôtes dans laquelle il devra choisir, puis initialisera la communication avec l'hôte sélectionné, lequel présentera une invite d'authentification sur l'écran du serveur X.

Il y a plusieurs autres options, mais elles ne seront pas décrites ici - référez-vous à la documentation de XDM et de XDMCP citée dans la la section intitulée “Ressources” pour de plus amples détails.

Serveur X géré par XDM

Si vous avez plusieurs machines (par exemple des terminaux X limités ou dépourvus de disque), qui ne font que faire tourner un serveur X, tous destinés à fournir une invite d'authentification pour un seul serveur d'application, alors il est possible de configurer XDM sur le serveur d'applications afin qu'il se connecte en retour avec chaque serveur X et qu'il présente son invite d'authentification automatiquement sur chaque écran.

Dans ce mode opératoire, XDM sortira d'initiative une invite d'authentification pour tous les server X de sa connaissance, sans attendre une requête de leur part.

Dans ce cas, le fichier de configuration Xservers liste chaque machine (y compris l'écran local, si nécessaire) auxquelles XDM doit se connecter pour afficher son invite d'authentification.

Cette configuration, quand elle est utilisée sans serveur X distant, est la configuration typique utilisée pour une station de travail X, de façon à offrir à l'utilisateur une invite d'authentification graphique sur la machine locale sur laquelle il doit travailler. Comme dit plus haut, la plupart des distributions permettent immédiatement cette configuration, de façon à présenter à l'utilisateur une invite d'authentification graphique.

Note : XDM doit avoir l'autorisation de se connecter aux serveurs X en question - aussi les contrôles d'accès sur les serveurs X doivent être configurés en conséquence.