XDM est la manière la plus courante pour se connecter à
partir d'un terminal graphique. Même s'il ressemble à
login
, il se comporte, en interne, d'une manière
totalement différente.
Les fichiers de configuration se trouvent dans le répertoire
/etc/X11/xdm
et sont exécutés pendant les
différentes étapes de la connexion. Xstartup
(et Xstartup_0 pour l'écran 0) contient les commandes à
exécuter juste après la connexion. Ces commandes sont
lancés en tant que root.
Le PATH qui est utilisé pour les utilisateurs se trouve dans
/etc/X11/xdm/xdm-config
.
Ce sont les lignes :
DisplayManager*userPath: /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games DisplayManager*systemPath: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11C'est le PATH par défaut pour les utilisateurs normaux (
userPath
), et pour l'utilisateur
root (systemPath
) respectivement. Il est très important
que le répertoire /usr/bin/X11
soit accessible
pour les utilisateurs sous X. En effet, si un utilisateur se connecte
à une autre machine pour lancer une application X, il faut qu'il
aie /usr/bin/X11
dans son PATH
car la machine hôte ne saura pas qu'il dispose d'un terminal X.
Après Xstartup, XDM lance /etc/X11/Xsession
en tant
qu'utilisateur final. La configuration locale est contenue dans le fichier
/etc/environment
qui est parcouru, s'il existe, par Xsession.
Xsession étant exécuté par /bin/sh
,
/etc/environment
doit donc être un script sh
.
Cela interfère avec ssh
qui suppose que
/etc/environment
est un fichier qui ne
contient que des lignes de la forme VARIABLE=VALEUR.
Par défaut, le PATH de toutes les commandes lancés à
partir des menus du gestionnaire de fenêtre est celui
hérité de XDM. Pour en utiliser
un autre, il faut le définir explicitement. Pour lancer un terminal X
avec un PATH "normal", on doit utiliser des options spéciales.
Pour xterm
, l'option -ls
(login shell) doit être
utilisé pour obtenir un login shell avec le PATH défini dans
les fichiers d'initialisation du shell en question.
Le gestionnaire de fenêtre hérite de l'environnement de XDM. Tous les programmes lancés par lui héritent donc de cet environnement.
L'environnement du shell de l'utilisateur n'affecte pas les programmes
qui sont lancés par les menus ou les boutons. Par exemple, si un
programme est lancé par un xterm
(xterm -ls
),
il possède l'environnement par défaut du login shell,
par contre s'il est lancé par un menu, il aura l'environnement
du gestionnaire de fenêtre.