Historique des versions | ||
---|---|---|
Version v0.05 | 14 novembre 2000 | kt |
Ajout de références à d'autres Howtos | ||
Version v0.04 | 6 novembre 2000 | kt |
Mises à jour suite à la première publication. | ||
Version v0.03 | 3 juillet 2000 | kt |
Mises à jour mineures suite aux premiers commentaires | ||
Version v0.02 | 28 juin 2000 | kt |
Premier brouillon de source SGML d'après le source HTML | ||
Version v0.01 | 27 juin 2000 | kt |
Premier brouillon de source HTML |
Table des matières
Le numéro de la dernière version de ce document peut être obtenu depuis la page internet des projets du groupe d'utilisateurs de Linux The Northants LUG, UK Project Pages .
Ce document ne traite pas de l'installation ou de la configuration d'un réseau ou de X sous Linux. Reportez-vous aux documents HOWTO du projet de documentation Linux appropriés pour de plus amples détails (cf. la section intitulée « Ressources »).
Ce document doit être vu comme une « prise en main de XDM », en ce qu'il décrit les termes et les concepts de base pour utiliser XDM et les terminaux X, avec des exemples simples qui procurent le minimum de sécurité.
Il est recommandé au lecteur de consulter la liste de ressources fournie à la fin de ce document afin de continuer au-delà de ces renseignements de base - en particulier la configuration des paramètres d'authentification et de sécurité doit être étudiée, car les exemples donnés dans ce document utilisent les modes d'exploitation les moins sécurisés.
NB : les données de ce document ont été obtenues à partir de systèmes faisant tourner les distributions Debian 2.1, SuSE 6.4, Mandrake 7.0 et RedHat 6.0.
Ce document n'essaie pas de décrire l'installation et la configuration de Linux comme terminal X. Voyez à ce sujet le Thin-Client HOWTO, fourni par le projet de documentation Linux, ainsi que le projet Linux Terminal Server (cf. la section intitulée « Ressources »).
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 »).
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.
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.
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.
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.
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.
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.
Cette section couvre ce qui doit être configuré pour que XDM puisse accomplir les fonctions décrites jusqu'ici dans ce document.
Pour chaque cas, la configuration décrite est le minimum nécessaire pour accomplir chaque but. Dans la plupart des cas, cela veut dire aussi que la configuration est la moins sécurisée. Référez-vous à la documentation additionnelle répertoriée dans la la section intitulée « Ressources » pour des informations supplémentaires concernant la sécurisation de XDM et des terminaux X (en particulier le Howto « exécuter des applications X distantes »).
Cette section décrit l'ensemble des fichiers de configuration de XDM suivant :
Il seront trouvés dans (Debian 2.1, Mandrake 7.0.2, RedHat 6.2) :
/etc/X11/xdmou (SuSE 6.4) :
/usr/X11R6/lib/X11/xdm
xdm-config
Définit l'emplacement des autres fichiers de configuration et les permissions d'accès de base. Pour toutes les distributions considérées dans ce document, les noms de fichiers apparaissent tels que cités ici (mais quelques fois, leur emplacement peut varier).
Il définit également les scripts qui doivent être lancés pour les différents états de transition d'une session X, c'est-à-dire au démarrage, etc. Vous ne devriez pas avoir besoin de les changer, car la plupart des distributions l'ont préconfiguré pour vous.
Notez que les sessions X gérées par XDM ont un ensemble de scripts de configuration et de démarrage différent des sessions X démarrées avec xinit ou startx (c'est-à-dire les sessions X non gérées par XDM).
Xaccess
Détermine quelles machines peuvent se connecter à XDM - c'est-à-dire de quelles autres machines du réseau nous acceptons des requêtes XDMCP. Si une machine n'est pas inscrite dans ce fichier, alors il lui sera impossible de demander une invite d'authentification à XDM.
Xservers
Contient une liste de machines auxquelles XDM se connectera, pour fournir une invite d'authentification, de façon automatique - c'est-à-dire, ces machines faisant déjà tourner un serveur X, mais qui veulent que ce soit notre machine qui fournisse l'invite d'authentification.
Ce fichier n'est nécessaire que pour des serveurs X gérés par XDM. Vous n'avez besoin d'aucune entrée dans ce fichier si vous laissez aux serveurs X distants la tâche de requérir XDM.
Pour une station de travail X autonome, il n'y a généralement qu'une seule entrée dans ce fichier, mentionnant l'hôte local « localhost ».
Xresources
Détaille les propriétés X utilisées par les composants visuels (par exemple la taille de la boîte d'identification, les couleurs, les images de fond, etc.).
# D'abord la machine locale :0 local /usr/bin/X11/X vt7 # # Puis les machines distantes emma:0 foreign alex:0 foreign
Ceci fera démarrer XDM sur la machine locale, et fera aussi présenter un écran d'authentification sur les serveurs X tournant sur les hôtes « emma » et « alex » (en supposant que les permissions ont été configurées sur « emma » et « alex » de façon à ce que notre machine puisse se connecter à leurs serveurs X).
Notez qu'il est possible de spécifier l'hôte et l'écran (:0, :1, etc.) si nécessaire, par exemple si vous faites tourner plusieurs serveurs X sur une machine seule.
# La première ligne pour les requêtes directes * # Les lignes suivantes pour les requêtes indirectes * CHOOSER BROADCAST
Signifie que n'importe quel hôte peut demander une invite d'authentification à XDM (le premier « * ») par une requête directe.
La ligne « CHOOSER » spécifie quels hôtes peuvent se connecter à XDM en utilisant des requêtes indirectes - dans ce cas, n'importe quel hôte peut demander à notre machine une liste d'hôtes potentiels auxquels se connecter (la seconde ligne « * »).
« BROADCAST » a pour effet que l'application « chooser » (« décideur » - NdT) sur notre machine obtiendra sa liste de serveurs disponibles (qui font également tourner XDM) par des requêtes diffusées au travers du réseau. Je parlerai plus tard de « chooser ».
Il est possible de spécifier des noms d'hôtes à cet endroit (et il y a aussi d'autres requêtes indirectes possibles, sans utiliser « chooser ») mais ce ne sera pas décrit ici (cf. la section intitulée « Ressources » pour des liens sur plus d'informations).
/usr/X11R6/bin/X -ac
Quand le XDM distant est lancé, il fournira d'autorité une invite d'authentification
à tous les serveurs X configurés ainsi (suivant ceux présents dans son fichier Xservers
).
/usr/X11R6/bin/X -query l.hote.distant /usr/X11R6/bin/X -broadcast /usr/X11R6/bin/X -indirect l.hote.distant
Dans chaque cas, X devra probablement être démarré avec les droits du super-utilisateur root, et peut-être configuré pour être démarré par les scripts d'initialisation, si on veut que X soit lancé automatiquement au démarrage.
Chooser*geometry: 700x500+300+200
Le chooser obtient sa liste d'hôtes par une de ces deux méthodes :
requête diffusée : Dans ce mode une requête est diffusée sur le réseau, et une liste est construite à partir des réponses reçues des autres serveurs exécutant XDM ;
écoute explicite : Il est possible de fournir au chooser une liste
d'hôtes dans le fichier Xaccess
, comme suit :
%hostlist emma alex liam * CHOOSER %hostlistCela aura pour effet que les hôtes emma, alex et liam seront tous listés comme candidats - même si une de ces machine est éteinte (il y a souvent un bouton pour tester par « ping » un hôte, afin de vérifier s'il est en fonctionnement avant d'essayer de s'y connecter).
DisplayManager._0.resources /etc/X11/xdm/Xres_0 DisplayManager*resources /etc/X11/xdm/Xresources
Xres_0
sera utilisé pour l'affichage local (_0 est la façon pour XDM de dire
:0) et Xresources
pour tous les autres (le « * »).
Notez que les fichiers de configuration de XDM utilisent la terminologie hôte_0, où nous dirions habituellement hôte:0, pour désigner « écran 0 sur Hôte ».
D'une façon similaire, si vous voulez un fichier de ressources particulier pour un hôte spécifique, vous devez utiliser une entrée comme suit :
DisplayManager.host_0.resources /etc/X11/xdm/Xres_host_0
Si vous regardez votre fichier xdm-config
par défaut, vous verrez probablement
qu'il a été configuré pour que des fichiers différents soient utilisés pour votre
serveur X local et les serveurs distants, car des choses différentes doivent être
faites au démarrage et à la réinitialisation de ces serveurs. Le fichier sur ma Debian
contient les entrées suivantes pour le serveur local :
DisplayManager._0.resources: /etc/X11/xdm/Xresources_0 DisplayManager._0.setup: /etc/X11/xdm/Xsetup_0 DisplayManager._0.startup: /etc/X11/xdm/Xstartup_0 DisplayManager._0.reset: /etc/X11/xdm/Xreset_0et les entrées suivantes pour les serveurs distants :
DisplayManager*resources: /etc/X11/xdm/Xresources DisplayManager*setup: /etc/X11/xdm/Xsetup DisplayManager*startup: /etc/X11/xdm/Xstartup DisplayManager*reset: /etc/X11/xdm/Xreset
XDM tourne sur le serveur d'applications :
Le terminal X exécute X en utilisant une requête directe au serveur d'applications :
/usr/X11R6/bin/X -query le.serveur.d.applications
/usr/X11R6/bin/X -query le.serveur.Solaris
Notez que vous pouvez configurer X sur la machine Linux pour qu'il utilise un serveur de police de caractères sur la machine Solaris. Je n'y suis pas encore arrivé, car je n'ai pas de machine Solaris que je puisse contrôler - mais il m'a été rapporté qu'une entrée comme celle-ci dans /etc/XF86config fonctionne (Attention ! Ceci demande à être vérifié) :
tcp/solaris.box:7200
Cette section contient quelques ressources consultées pour rédiger ce document et qui fournissent d'autres informations sur les concepts décrits.
Plusieurs des références citées ci-dessous font partie du projet de documentation Linux (LDP) : http://www.linuxdoc.org/
X User HOWTO, relatif à l'utilisation de X (du LDP)
Running Remote X Applications Mini-Howto, relatif à l'exécution d'applications X distantes (du LDP)
Pages de manuel : X (concepts principaux), Xserver (concepts sur les serveurs X)
FAQ de X (cf. http://www.x.org/)
Thin-client HOWTO, relatif aux clients légers (du LDP)
Projet Linux Terminal Server : http://www.ltsp.org/
Diskless HOWTO, relatif aux terminaux dépourvus de disques (du LDP)
Les pages sur les terminaux X : http://dns.solucorp.qc.ca/xterminals
Transformer de vieux PC en terminaux X autonomes, de Richard Kaszeta : http://www.menet.umn.edu/~kaszeta/unix/xterminal/
Pages de manuel : xdm
XDMCP Howto (du LDP)