5. Faire tourner X

Contenu de cette section

Cette section porte sur la configuration de xdm afin qu'une invite de connexion soit disponible sur les terminaux X, et que le retour à celle-ci soit réalisé quand un utilisateur se déloge. Le programme xdm est l'équivalent pour TX des programmes de connexion sur consoles texte. Il est normalement inclus dans toutes les distributions de Linux.

5.1 Configuration de xdm

Les fichiers de configuration de xdm se trouvent dans /usr/X11R6/lib/X11/xdm (/usr/X11R6 peut être un lien sur /usr/X11). Le principal fichier de configuration est xdm-config. Vous devez y trouver, parmi d'autres, les lignes :

       DisplayManager._0.authorize:    true
       DisplayManager._0.setup:        /usr/X11R6/lib/X11/xdm/Xsetup_0
       DisplayManager._0.startup:      /usr/X11R6/lib/X11/xdm/GiveConsole
       DisplayManager._0.reset:        /usr/X11R6/lib/X11/xdm/TakeConsole

Ces lignes indiquent les fichiers contrôlant l'écran quand X est lancé sur la machine Linux elle-même. Pour la gestion du TX, nous devons ajouter les lignes :

       DisplayManager.murmure_0.authorize:     true
       DisplayManager.murmure_0.setup:   /usr/X11R6/lib/X11/xdm/Xsetup_murmure
       DisplayManager.murmure_0.startup: /usr/X11R6/lib/X11/xdm/Xstartup
       DisplayManager.murmure_0.reset:   /usr/X11R6/lib/X11/xdm/Xreset

Remarquez que murmure_0 est la notation xdm de murmure:0, tout comme _0 est l'équivalent de :0. Remarquez aussi que GiveConsole a été remplacé par Xstartup, qui dans mon cas est un script ne faisant rien, et que TakeConsole a été remplacé par Xreset, qui est lui aussi un script ne faisant rien. Ces fichiers contrôlent à la fois la "possession" de la console quand X est utilisé directement sur la machine Linux, et qu'il n'y ait pas de problème d'accès à la console uniquement parce qu'un TX est connecté à la machine.

Ces fichiers de démarrage lancent différents programmes avant que l'invite de connexion soit placée à l'écran. C'est est l'endroit indiqué pour vous dire d'utiliser xv ou un programme similaire afin de placer une image en fond d'écran. Dans ce cas, copier le fichier Xsetup_0 en tant que Xsetup_murmure et modifier ce dernier.

Comme cette question réapparait encore et encore : une méthode simple de mettre une image en fond d'écran est de mettre la ligne :

         nice xv -root -quit -rmode 5 <fichier_image> &

ou quelque chose du même style dans le fichier de démarrage. fichier_image sera alors affiché en fond d'écran derriére l'invite de connexion de xdm. Notez que certains TX renverront un message d'erreur si cette image est trop grande.

Le fichier Xaccess permet de contrôler l'accès à la machine. Généralement vous n'aurez pas à le modifier. Xaccess permet aussi de donner à l'utilisateur à choisir dans une liste de machine (chooser) si plusieurs machines du réseau acceptent l'accès depuis un TX.

Le fichier Xresources permet de fixer la taille, la forme et le message de bienvenue de la fenêtre de l'invite de connexion. Ainsi en remplaçant la ligne :

       DisplayManager*resources:       /usr/X11R6/lib/X11/xdm/Xresources
par les lignes
       DisplayManager._0.resources:        /usr/X11R6/lib/X11/xdm/Xres_0
       DisplayManager.murmure_0.resources: /usr/X11R6/lib/X11/xdm/Xres_mu_0

Xres_mu_0 est le fichier de ressources pour le TX murmure et Xres_0, celui pour la console de la machine Linux. Vous pourrez donner des valeurs différentes pour le TX et pour la machine sous Linux.

Normalement vous ne devriez pas avoir à modifier le fichier Xsession.

La configuration du fichier Xservers est aussi presque triviale. Au pire vous aurez à décommenter (cas de la distribution Slackware 2.2.0.1) la ligne :

                    :0 local /usr/X11R6/bin/X

ou une ligne ayant le même effet. Cela permet le démarrage automatique du serveur X sur la machine hôte nunux lors de l'appel de xdm. Si vous commentez cette ligne, X ne sera pas lancé sur la machine nunux lors d'un appel à xdm. C'est le cas si vous désirez que X ne soit utilisé que sur les TX et non sur la machine hôte. Dans ce cas, vous pourrez démarrer X sur la machine nunux par la commande startx et pour le temps que vous voudrez, sans que cela ait d'incidence sur le TX.

Si votre TX n'a pas XDMCP, vous devrez alors ajouter une ligne telle que :

                         murmure:0 foreign

XDMCP est un protocole standardisé qui, par exemple, laisse les TXs discuter avec leurs hôtes. Si votre TX supporte XDMCP vous ne devez pas ajouter cette ligne. Ceci laisserait pensé à xdm qu'un TX ne comprend pas XDMCP, alors qu'au même moment celui-ci tenterait d'utiliser ce protocole pour se connecter. Cela peut conduire à de nombreux effets fortement désagréables comme la lutte de deux xdm pour la prise de contrôle.

Vous pouvez utiliser les entrées du fichier xdm-config même s'il n'y a pas de ligne dans Xservers pour le TX. Vous pourrez toujours personnaliser l'invite de connexion, etc., si le TX utilise XDMCP.

Afin que xdm démarre à chaque lancement de Linux, vous pouvez ajouter la ligne :

        /usr/bin/X11/xdm

dans /etc/rc.d/rc.local. Certains démarrent xdm par le biais du fichier /etc/inittab en remplaçant :

# Default runlevel.
id:3:initdefault:
(première entrée du fichier) par
# Default runlevel.
id:5:initdefault:

Dans tous les cas vous devez avoir xdm dans la liste des processus actifs après le redémarrage.

5.2 Questions sur l'accès

(Cette importante partie sera développée ultérieurement, nous travaillons dessus.)

Pour savoir si un utilisateur peut accéder à l'environnement d'un TX depuis la machine nunux, connectez vous (en autre chose que root) et lancez la commande :

           xsetroot -solid white -display murmure:0 &
    ou 
           xterm -display murmure:0 &

Essayez cela quand quelqu'un est connecté sur le TX et qu'il n'y a que l'invite de connexion de xdm. Suivant votre position, la possibilité d'accès au TX depuis une session sur la console sera plus ou moins une possibilité inattendue qu'un bug.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre