Introduction
L'objet de cet article est le param�trage et l'utilisation du Gestionnaire d'Affichage X. Il s"�xecute comme daemon sur une machine
h�te et g�re plusieurs affichages X (locaux ou � distance) et assure la gestion de session de base de mani�reanalogue � init(8),
getty(1) et login(1) sur les terminaux texte. De plus, xdm permet de nettoyerles terminaux sur lesquels le serveur X ne
s'ex�cute plus. Une des propri�t�s les plus appr�ciables de xdm est sa capacit� � g�n�rer des informations li�es aux autorisations
qui peuvent être utilis�es par le serveur pour contr�ler les acc�s bas�s sur les h�tes et les niveaux des comptes. Gr�ce � sa
capacit� de gestion des connections de sessions X en utilisant des techniques d'autentification standards, xdm est id�al sur les sites
o� une machine unique est partag�e par de multiplesutilisateurs qui ex�cutent des sessions X individuelles et personnalis�es.
Objet
Bien que ces colonnes abordent les autorisations sous xdm, la s�curit� de X Window sera trait�e le mois prochain en tant que sujet
� part enti�re. Si vous �tes int�ress�s par l'utilisation de xdm sur un syst�me unique, vous pouvez laisser de cot� la section XDMCP.
Une configuration pr�te � l'emploi vous a surement �t� livr�e avec votre distribution. Si c'est le cas , vous vous en sortirez en
v�rifiant simplement les sections "personnalisation et ex�cution de xdm ". Le reste de l'article traite principalement des syst�mes
en r�seaux et de leur interaction avec les terminaux X. De plus, si vous recherchez une approche type recette de cuisine pour param�trer
l'environnement d'un terminal X, je vous sugg�re de vous r�f�rer � Associates " The X WindowSystem Administrators Guide" de
O' Reilly & Associates qui couvre les d�tails de l'administartion des terminaux X beaucoup plus en d�tail que ne le fait cet article.
gestion de Session sous X
Dans un login traditionnel sur un terminal texte, une session est l'interpr�teur de l'utilisateur. Sous xdm une session est controll�e
par gestionnaire de session arbitraire car dans un environnement graphique le processus de login d'un utilisateur n'a pas forcement
une interface de type terminal o� se connecter. A titre de gestion de session dans l'environnement X windows, nous utilisons le
gestionnaire de fen�tres en tant que " gestionnaire de session ". Quand le gestionnaire de fen�tre se termine, il en est de m�me
pour la session de l'utilisateur.
Concepts de base d'xdm
xdm est un client X qui g�re les premieres et dernieres �tapes de la connection, le contr�le et la
coordination d'une session utilisateur. Xdm trace quels serveurs X sont disponibles pour des connections en lisant les
fichiers des serveurs X et en �coutant le port XDMCP � l'�coute d'autres serveurs qui demandent � �tre g�r�s. Quand xdm
recoit la gestion d'un serveur X, il affiche la boite de login et attend les entr�es de l'utilisateur. Quand ce dernier
entre son nom et son mot de passe, il est authentifi� de la m�me mani�re que sur un terminal standard (tty). A ce point,
xdm ex�cute un certain nombre de scripts qui d�marrent le clients X de l'utilisateur. D�sormais, une session X normale
se d�roule et quand l'utilisateur la quitte, xdm ferme toutes les connections et ram�ne le terminal � son �tat de login,
pr�t pour une nouvelle session.
Pourquoi utiliser xdm ?
A cot� des aspects s�curit�, contr�le � distance et agr�ment, xinit est consid�r� comme obsol�te par le Consortium X ( maintenant
The Open Group ) avec toutes les nouvelles fonctions int�gr�es � xdm. Xdm permet
aux administarteurs de configurer des environnements pour tout un syst�me. De plus, xdm est le seul moyen (� ma connaissance)
de partager une machine entre plusieurs utilisateurs sans avoir � tuer le serveur X et le red�marrer pour chaque nouvel
utilisateur autrement qu'en partageant le m�me bureau et les m�mes r�glages.
Configuration
xdm est configur� au moyen de fichiers texte standard. Les fichiers globaux sons g�n�ralement situ�s dans /usr/lib/X11/xdmoru/etc/xdm tandis que les fichiers locaux sont situ� (o� d'autre ?) dans le r�pertoire de chaque utilisateur. Notons que le fichier xmd-config peut d�finir des chemins diff�rents pour tous les autres fichiers, et le sien peut �tre pr�cis� au moyen du param�tre -config, ainsi les syst�me avec avec un param�trage pr�d�finis peuvent facilement �tre modifi�s sans toucher � l'original. Ci-dessous figure une br�ve description de chaque fichier ainsi qu'un exemple comment� (si n�cessaire).
Fichiers globaux
xdm-config
Ce fichier pr�cise les chemins de tous les autres fichiers de configuration (si des r�glages autres que ceux par d�faut doivent �tre utilis�s) et d�finit les commandes pour xdm setup, startup, reset et le script initial. Dans l'exemple ci dessous tous les fichiers additionnels sont dans /etc/X11/xdm de telle sorte que les fichiers par d�faut reste dans /usr/lib/X11/xdm sans �tre modifi�s.
- DisplayManager.errorLogFile:
/var/log/xdm-error.log
-
DisplayManager.pidFile: /var/run/xdm.pid
-
DisplayManager.keyFile:
/etc/X11/xdm/xdm-keys
-
DisplayManager.servers:
/etc/X11/xdm/Xservers
-
DisplayManager.accessFile:
/etc/X11/xdm/Xaccess
-
DisplayManager._0.authorize: true
-
DisplayManager._1.authorize: true
-
DisplayManager._0.setup:
/etc/X11/xdm/Xsetup_0
-
DisplayManager._0.startup:
/etc/X11/xdm/GiveConsole
-
DisplayManager._0.reset:
/etc/X11/xdm/TakeConsole
-
DisplayManager*resources:
/etc/X11/xdm/Xresources
-
DisplayManager*session:
/etc/X11/xdm/Xsession
-
DisplayManager*authComplain: false
Xservers
Une liste de serveurs � g�rer par xdm. Au minimum, ce fichier doit contenir le serveur pour l'affichage local. NOTA - ce fichier est seulement relu � la fin d'une session ou si xdm re�oit un signal SIGHUP. Pour envoyer un signal SIGHUP � xdm, trouvez son pid et tuez ce processus. C'est � dire
# ps -a | grep xdm
2639 ? R 0:09 /usr/bin/X11/xdm
# kill -9 2639
Voici un exemple de fichier Xserver destin� � �tre utilis� sur une machine seule...
- # La premi�re ligne doit �tre l'affichage local
-
- :0 local /usr/X11R6/bin/X
-
# :0 d�finit la console
-
# local pr�cise que le serveur X est ex�cut� locallement
-
# /usr/X11R6/bin/X executable lanc� au d�marrage
-
- # la syntax pour les terminaux X terminals est l�g�rement diff�rente
-
# puisqu'ils ex�cutent un serveur X depuis une autre machine
-
# entrer SEULEMENT les terminaux X s'ils NE supportent PAS XDMCP
-
- eng1:0 foreign NCD xterminal
-
# eng1 est le nom du terminal
-
# :0 est l'affichage � utiliser sur le terminal
-
# foreign signifie que le serveur the X s'ex�cute sur une machinediff�rente
-
# NCD xterminal est une classe de ressources d'affichage sp�cifiques � ce terminal
-
# et ne sont pas absolument necessaire
-
- eng2:0 foreign NCD xterminal
-
eng3:0 foreign Visual xterminal
Xsession
Script initial de d�marrage utilis� par chaque session X.
- #!/bin/sh
-
- # la section suivante active le mode sans echec si necessaire
-
# l'utilisation de <CTRL><RETURN> apr�s
password active le mode sans echecs (failsafe)
-
- case $# in
-
1)
-
case $1 in
-
failsafe)
-
exec xterm -geometry 80x24-0-0
-
;;
-
esac
-
esac
-
- # rediriger les erreurs vers un fichier dans le r�pertoire utilisateur
-
for errfile in "$HOME/.xsession-errors"
"${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER"
-
do
-
if ( cp /dev/null "$errfile"
2> /dev/null )
-
then
-
chmod 600 "$errfile"
-
exec > "$errfile" 2>&1
-
break
-
fi
-
done
-
- # utiliser les fichiers locaux de l'utilisateur .xsession et .Xresources s'ils existent
-
startup=$HOME/.xsession
-
resources=$HOME/.Xresources
-
- if [ -x "$startup" ]; then
-
exec "$startup"
-
elif [ -x "$HOME/.Xclients" ];
then
-
exec "$HOME/.Xclients"
-
elif [ -x /etc/X11/xinit/Xclients ];
then
-
exec /etc/X11/xinit/Xclients
-
else
-
if [ -f "$resources" ]; then
-
xrdb -load "$resources"
-
fi
-
exec xsm
-
fi
-
Xresources
Definit les ressources � charger via xrdb(1) pour tous les serveurs g�r�s par xdm.
- # acc�l�rateurs claviers utilis� par le widget Xlogin
- xlogin*login.translations:
#override\
-
# Ctrl R emp�che xdm de g�rer l'affichage
-
Ctrl<Key>R: abort-display()\n\
-
# F1 ou Ctrl Return execute un mode sans echecs
session
-
# qui consiste en une simple fen�tre xterm
-
<Key>F1:
set-session-argument(failsafe) finish-field()\n\
-
Ctrl<Key>Return:
set-session-argument(failsafe) finish-field()\n\
-
<Key>Return:
set-session-argument() finish-field()
-
- # param�tres d'affichage du widget Xlogin affich�s par xdm
-
- xlogin*borderWidth: 3
-
xlogin*greeting: CLIENTHOST
-
xlogin*namePrompt: login:\040
-
xlogin*fail: Sorry Try Again
-
#ifdef COLOR
-
xlogin*greetColor: CadetBlue
-
xlogin*failColor: red
-
*Foreground: black
-
*Background: #fffff0
-
#else
-
xlogin*Foreground: black
-
xlogin*Background: white
-
#endif
-
- # r�glages pour le client xconsole qui est utilis� lors
-
# de l'initialisation de la connection au serveur xdm. Ceci
-
# emp�che les messages envoy�s entre les logins de traverser l'�cran
-
- XConsole.text.geometry: 480x130
-
XConsole.verbose: true
-
XConsole*iconic: true
-
XConsole*font: fixed
-
- Chooser*geometry: 700x500+300+200
-
Chooser*allowShellResize: false
-
Chooser*viewport.forceBars: true
-
Chooser*label.font: *-new century
schoolbook-bold-i-normal-*-240-*
-
Chooser*label.label: XDMCP Host Menu
from CLIENTHOST
-
Chooser*list.font:
-*-*-medium-r-normal-*-*-230-*-*-c-*-iso8859-1
-
Chooser*Command.font: *-new century
schoolbook-bold-r-normal-*-180-*
-
xdm-pid
Fichier contenant le pid de xdm (pour information seulement, ne pas �diter)
xdm-errors
Fichier d'enregistrement des erreurs pour xdm.
Xaccess
Configure le contr�le d'acc�s pour XDMCP (X11R5 et plus). Ce fichier d�finit seulement les permissions d'acc�s pour les requ�tes XDMCP. Il permet aussi de d�finir des macros pour grouper logiquement des ensembles d'h�tes li�s. Le cont�le d'acc�s au serveur est activ� en utilisant la ressource DisplayManager*authorize dans le fichier xdm-config. Pour plus d'informations sur le param�trage de XDMCP et des exemples, voir la section sur le CHOOSER ci-dessous.
GiveConsole
Un script utilis� pour attribuer la console � l'utilisateur. Sans raisons valables, laisser ce script et take console � leurs valeurs par d�faut comme ci-dessous
- #!/bin/sh
-
# Attibue la console � l'utilisateur entrant
-
# $XConsortium: GiveConsole,v 1.2
93/09/28 14:29:20 gildea Exp $
-
#
-
# Par convention, � la fois xconsole et xterm-C v�rifient que
-
# la console appartient � l'utilisateur et est lisible avant d'y lier
-
# la sortie de la console. De cette fa�on, l'utilisateur peut appeler xterm -C sans
-
# causer de dommages s�rieux.
-
#
-
chown $USER /dev/console
-
Take Console
Un script utilis� pour r�-attribuer la console � root (X11R5 et plus). Ici encore, laisser ce script en l'�tat
- #!/bin/sh
-
# Reassigne la console � root, ceci devrait d�sactiver
-
# la redirection des sorties console vers n'importe quel utilisateur xterm
-
# $XConsortium: TakeConsole,v 1.2
93/09/28 14:30:29
-
#
-
chmod 622 /dev/console
-
chown root /dev/console
-
Xsetup_0
Un sript pour param�trer l'affichage local du serveur. (X11R5 et plus) Pr�pare xconsole qui est une fen�tre terminal qui affiche les messages g�n�r�s par le syst�me entre les logins.
- #!/bin/sh
-
# $XConsortium: Xsetup_0,v 1.3 93/09/28
14:30:31
- /usr/X11R6/bin/xconsole -geometry480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
Local Files
~/.xsession
Script de d�marrage sp�cifique � l'utilisateur et appel� depuis le script global Xsession. Contrairement � ~/.xinit il peut �tre �x�cut� par n'importe quel interpr�teur. (~/.xinit doit �tre un script pour Bourne shell ou Bash)
~/.Xresources
Ressources sp�cifiques � l'utilisateur et lues par le script global Xsession.
~/.xsession-errors
Fichier d'erreur pour les sessions X individuelles.
~/.Xauthority
Contients les informations d'autorisation pour le serveur de l'utilisateur.
XDMCP
Le protocol de contr�le du gestionnaire d'affichage (X Display Manager Control Protocol) fut introduit pour la premi�re fois dans la version 4 de X11 pour r�soudre divers probl�mes entre xdm et les terminaus X. Avant XDMCP le moyen pour xdm de conna�tre les serveurs pr�ts � �tre g�r�s �tait de lire le fichier Xservers. Comme ce fichier n'est lu qu'au d�marrage de xdm, des probl�mes survenaient quand des terminaux X �taient �teints puis r�allum�s. Chaque fois qu'un terminal X �tait r�allum� il �tait n�cessaire qu'un administrateur syst�me force xdm � relire le fichier Xservers en envoyant un signal SIGHUP � xdm via sons pid.
XDMCP permet aux serveurs de dialoguer avec xdm sans que celui ci n'ait de connaissance explicite pr�alable du serveur. Sous XDMCP les h�tes attendent des requ�tes (dans n'importe lequel des 3 modes de communications support�s) sur le port XDMCP. Quand il re�oit une requ�te, il relance une copie de lui m�me et transmet l'�cran de login au terminal.
Les Modes de Communication
XDMCP autorise trois modes de communication aux serveurs qui requi�rent une gestion et qui ne figurent pas explicitement dans le fichiers Xservers ; ce sont DIRECT, INDIRECT, ou BROADCAST.
Avec le mode DIRECT, un serveur fait une demande non sp�cifique de gestion sur le r�seau. Le premier processus xdm qui r�pond � une requ�te DIRECT devient le gestionnaire du serveur. Une requ�te INDIRECT g�n�re une boite de dialogue vers le terminal X qui liste tous les h�tes disponibles pour des connections et laisse l'utilisateur d�cider lequel assurera la gestion. Le mode INDIRECT est particuli�rement utile dans les environnements multi-h�tes. Pour implanter le mode INDIRECT, il faut utiliser le mot cl� CHOOSER lors de l'�tablissement des ressources dans le fichiers Xaccess. Une autre fa�on de mettre en �uvre le chooser, est d'utiliser le mode BROADCAST en conjonction avec la ressource CHOOSER qui envoit un message diffus� � tous les h�tes sur le r�seau et permet � l'utilisateur d'en choisir un.
Chooser
Quand on utilise des terminaux X qui n'offrent pas de menu d'h�tes au d�marrage, le programme chooser peut �tre utilis� en conjonction avec les modes BROADCAST ou INDIRECT. Pour activer le programme chooser on utilise CHOOSER comme premi�re entr�e de la liste indirecte des h�tes dans le fichier Xaccess.
eng*.odhs.dsd.com CHOOSER BROADCAST
permet � tous les terminaux " engineering " � odhs.dsd.com de choisir tous les h�tes diponibles dans une liste. Un sc�nario plus probable consisterait � pr�d�finir une liste donn�e d'h�tes auxquels tous les terminaux du d�partement d'engineering seraient autoris�s � se connecter, le mode indirect serait le meilleur moyen d'accomplir cela.
eng*.odhs.dsd.com
CHOOSER dsdapps.odhs.dsd.com dbsrv.odhs.dsd.com
test.odhs.dsd.com
Le param�trage ci dessus autorisera tous les terminaux du d�partement d'engineering � acc�der aux applications, bases de donn�es et serveurs de test via le menu.
Le fichier Xaccess permet de d�finir des macros pour regrouper logiquement les h�tes en relations. Voici un exemple qui utilise des macros avec le param�trage pr�c�dent du d�partement d'engineering.
%ENGHOSTS dsdapps.odhs.dsd.com
dbsrv.odhs.dsd.com test.odhs.dsd.com
eng*.odhs.dsd.com CHOOSER %ENGHOSTS
Les attributs visuels du chooser peuvent �tre ajust�s en modifiant les d�fauts dans le(s) fichier(s) Xresources.
Ex�cuter xdm
Pour essayer un param�trage de xdm sans rebooter, faire depuis la console
$ init 5
cela devrait reinitialiser le syst�me au niveau d'ex�cution 5. Si le niveau 5 ne d�marre pas xdm, v�rifiez /etc/inittab qui devrait pr�ciser � quel niveau d�marre xdm (Certaines distributions Slackware utilisent le niveau 4 pour xdm, mais la plupart des autres distributions que j'ai utilis�es se r�f�rent au 5.). On doit maintenant voir le widget xlogin qui demande le nom de l'utilisateur et son mot de passe et �tre capable de se connecter et d'essayer divers param�tres. Si vous �tes certain d'�tre au bon niveau d'ex�cution syst�me et que xdm ne se comporte toujours pas comme pr�vu, consulter le chapitre d�pannage ci-dessous. Sinon, � partir de ce point vous pouvez ajuster les diff�rent param�tres individuels (voir le chapitre individualisation ci-dessous). Une fois que xdm est configur�, vous pouvez changer le niveaud'ex�cution par d�faut au d�marrage pour 5 (ou l'�quivalent sur votre syst�me). La modification sur ma machine est aussi simple que de changer
#/etc/inittab
id:3:initdefault:
en
id:5:initdefault:
Ceci d�marre Linux au niveau 5 par d�faut ce qui � son tour d�marre automatiquement xdm � chaque d�marrage du syst�me (boot).
D�pannage de xdm
Si xdm ne fonctionne pas comme pr�vu, le premier endroit o� regarder est ~/.xsession-errors. Ce fichier local d'enregistrement des erreurs contient uniquement celles g�n�r�es avec votre compte et est par cons�quent plus sp�cifique que celui du syst�me. Ci dessous j'ai soulign� quelques erreurs et pi�ges potentiels ainsi que les solutions adapt�es.
La boite de Login n'appara�t pas � l'�cran
C'est tr�s probablement une erreur dans les fichiers de configuration, vous testez bien cela avant de changer votre niveau d'ex�cution par d�faut n'est ce pas ?
Vous vous connectez avec succ�s et la boite de dialogue de login r�apparait
Votre fichier .xsession peut ne pas �tre ex�cutable. Essayez de vous connecter et de presserCTRL-RETURN apr�s votre mot de passeau lieu de " entr�e ". Ceci court circuitera le script .xsession et vous donnera une seule fen�tre de terminal � partir de laquelle vous pourrez
# chmod +x .xsession
et r�essayer.
Apr�s connection, l'�cran clignote et la boite de dialogue de login r�appara�t
Utilisez la m�thode d�crite ci-dessus pour cour-circuiter votre fichier .xsession pendant la connection et assurez vous que la derni�re commande de votre fichier .xsession d�marre en arri�re plan.
Conclusion
J'esp�re que cet article vous a convaincu de la puissance et de la souplesse du gestionnaire d'affichage X ( X Display Manager). Si vous souhaitez des informations plus d�taill�es sur xdm, consultez les liens ci-dessous pour en savoir plus. Dans le prochain num�ro, nous plongerons dans la tr�s brulante question de la s�curit� de X Window. N'h�sitez pas � m'envoyer vos questions et commentaires � [email protected]
|