[LinuxFocus Image]

Sommaire Index Rechercher Liens A propos [Barre de Navigation]

 Nouveaut�s  Archives

Le Gestionnaire d'Affichage X

par Joel McCarty


Introduction

Pourquoi utiliser xdm?

Configuration

Executer xdm

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]



Traduit par John Perr

© 1998 Joel McCarty
Ce site web est maintenu par Miguel A Sepulveda.