Sie sind auf Seite 1von 84

Authentification des comptes utilisateurs

Chapitre 32 : Authentification des comptes utilisateurs


Un compte utilisateur :
dfinition de son identification pour le systme
dfinition dun environnement utilisateur
Oprations possibles :
cration
modifications
destruction

Formation permanente ARS

Authentification des comptes utilisateurs

Le fichier /etc/passwd

32.1 Le fichier /etc/passwd


Il contient les informations sur les identifications des utilisateurs.
Exemple :

root:U/oeCQo.cmnyc:0:1:Operator:/root:/bin/csh
nobody:*:65534:65534::/:
daemon:*:1:1::/:
sys:*:2:2::/:/bin/csh
bin:*:3:3::/bin:
besancon:vSHntkfqz8MEk:4332:1000::/users/adm/besancon:/bin/bash
...

Formation permanente ARS

Format du fichier /etc/passwd, <pwd.h>

Authentification des comptes utilisateurs

32.2 Format du fichier /etc/passwd, <pwd.h>


Le format est compos de 7 champs spars par le caractre : :

login : mot de passe : UID : GID : gecos : homedir : shell


Pour la dfinition exacte sur sa machine, se reporter <pwd.h>.

Par exemple sur Linux :


/* The passwd structure.
struct passwd
{
char *pw_name;
char *pw_passwd;
__uid_t pw_uid;
__gid_t pw_gid;
char *pw_gecos;
char *pw_dir;
char *pw_shell;
};

*/

/*
/*
/*
/*
/*
/*
/*

Username. */
Password. */
User ID. */
Group ID. */
Real name. */
Home directory. */
Shell program. */

Formation permanente ARS

Authentification des comptes utilisateurs

Format du fichier /etc/passwd, <pwd.h>

champ 1 : login
Nom sous lequel un ordinateur connait un individu.
8 caractres en gnral. Pour plus, vrifier
Sur Linux, on peut avoir des noms plus longs que 8.
Conseils : pas de majuscules, viter les caractres accentus.

champ 2 : mot de passe


Mot de passe de lutilisateur stock sous forme chiffre non dchiffrable.

Ncessit dduquer les utilisateurs pour choisir un bon mot de passe.

Les logiciels de crack de mots de passe ne dchiffrent pas les mots de passe : ils font des essais
base de dictionnaires.

crack : ftp://ftp.lip6.fr/pub/unix/security/crack5.0.tar.gz john :


ftp://ftp.false.com/pub/security/john/john-1.6.tar.gz

Formation permanente ARS

Format du fichier /etc/passwd, <pwd.h>

Authentification des comptes utilisateurs

champ 3 : UID
Identificateur numrique compris entre 0 et 32767 (short int a priori).
Sur Linux, cest un __uid_t, un unsigned int.
Cette valeur doit tre unique au sein des utilisateurs.

champ 4 : GID
Identificateur numrique compris entre 0 et 32767 (short int a priori).
Sur Linux, cest un __gid_t, un unsigned int.
Cette valeur doit tre unique au sein des groupes.
% ls -ln
-rw-r--r-1 4332
1000
5544 Sep 15 22:47 cours.dvi
-rw-r--r-1 4332
1000
940 Sep 15 22:27 cours.tex
% ls -l
-rw-r--r--rw-r--r--

1 besancon software
1 besancon software

5928 Sep 15 22:49 cours.dvi


940 Sep 15 22:27 cours.tex

Formation permanente ARS

Authentification des comptes utilisateurs

Format du fichier /etc/passwd, <pwd.h>

champ 5 : gecos
Identit en clair de lutilisateur.
Les systmes BSD y ont stocks dautres informations comme le numro de tlphone, le numro
de bureau etc.
La commande chfn (change finger) permet de modifier ce champs.

champ 6 : homedir
Rpertoire par dfaut.

champ 7 : shell
Shell par dfaut.
Si le champ est vide, on prend /bin/sh par dfaut.
Le shell dterminera les fichiers de configuration installer chez lutilisateur.
La commande chsh (change shell) permet de choisir parmi les shells mentionns dans

/etc/shells.

Formation permanente ARS

Authentification des comptes utilisateurs

Format du fichier /etc/passwd, <pwd.h>

Quelques conseils :
Il faut toujours trier les lignes de /etc/passwd selon lordre numrique des UID :

# sort -t : +2n -3 /etc/passwd


Il ne faut jamais laisser de comptes sans mot de passe.

Formation permanente ARS

Authentification des comptes utilisateurs

Chiffrement des mots de passe, crypt()

32.3 Chiffrement des mots de passe, crypt()


Les mots de passe sont stocks sur une forme chiffre, mathmatiquement non rversible.
Algorithme de chiffrement : DES, standard fdral de ladministration amricaine
Ce chiffrement non rversible est dit hashing (le mot de passe chiffr est dit hashed).

Disponible sur Unix via la fonction C crypt() :


premier paramtre : la chaine chiffrer
second paramtre : la graine (dite salt en anglais) compose de 2 caractres
rsultat renvoy : une chaine dont les 2 premiers caractres reprennent le salt

Ainsi crypt("QWERTY",

Formation permanente ARS

"NU") renvoit NUMVcLVD/dM12

Chiffrement des mots de passe, crypt()

Authentification des comptes utilisateurs

Exemple de programme C complet :


#include<stdio.h>
main(int argc, char *argv[])
{
printf("=> %s\n", crypt(getpass("Chaine a chiffrer :"), argv[1]));
}

Une fois compil, le programme montre :


% ./textCRYPT NU
Chaine a chiffrer : XXXXXXXX
=> NUMVcLVD/dM12

<-- QWERTY pour lexemple

Formation permanente ARS

Cycle du mot de passe et commande passwd

Authentification des comptes utilisateurs

32.4 Cycle du mot de passe et commande passwd


La commande pour changer de mot de passe dun utilisateur dans /etc/passwd est passwd.
Elle appelle

crypt() avec un nouveau salt tir au hasard et avec le nouveau mot de passe entr.

passwd

hashed
password

crypt()

serveur
randomseed
or "salt"

Formation permanente ARS

/etc/passwd
(/etc/shadow)

10

Cycle du mot de passe et commande passwd

Authentification des comptes utilisateurs

Comportement lorsquun utilisateur change un mot de passe

% passwd
passwd: Changing password for besancon
Enter login password: XXXXXXXX
New password: ZZZZZZZZ
Re-enter new password: ZZZZZZZZ
passwd (SYSTEM): passwd successfully changed for besancon
On tache de vrifier lidentit de la personne en demandant le mot de passe initial.

Formation permanente ARS

11

Cycle du mot de passe et commande passwd

Authentification des comptes utilisateurs

Comportement lorsque ladministrateur

root change un mot de passe

# passwd besancon
New password: XXXXXXXX
Re-enter new password: ZZZZZZZZ
passwd (SYSTEM): passwd successfully changed for besancon
Root na jamais besoin de connatre le mot de passe dun utilisateur pour en changer le mot de
passe.
Lorsquun utilisateur a perdu son mot de passe :
root ne peut pas dchiffrer la chaine chiffre dans /etc/passwd
root peut changer le mot de passe par passwd

Formation permanente ARS

groslourd

12

Cycle du mot de passe et commande passwd

Authentification des comptes utilisateurs

La commande

passwd peut comporter plus ou moins de rgles de vrification de la sret du mot

de passe :
% passwd besancon
Enter login password: XXXXXXXX
New password: XXXXXXXX
<-- on entre exprs le mme mot de passe
passwd(SYSTEM): Passwords must differ by at least 3 positions
New password: YYYYYYYY
<-- mlange de lettres minuscules et majuscules
passwd(SYSTEM): The first 6 characters of the password
must contain at least two alphabetic characters and at least
one numeric or special character.
passwd(SYSTEM): Too many failures - try later.
Permission denied

Formation permanente ARS

13

Cycle du mot de passe et commande login

Authentification des comptes utilisateurs

32.5 Cycle du mot de passe et commande login


La commande lance par le systme pour se connecter est la commande

login.

Elle va devoir vrifier si les mots de passe entr et stock sont identiques, sachant que le mot de
passe est stock sous une forme hashe.
1. Lutilisateur entre
login et mot de passe

2. On recupre la
structure pwd de
lutilisateur
login
3. On extrait
le salt
4. crypt()
des donnes
entres

serveur
5. On extrait
le passwd
6. Comparaison
hash stock et
hash calcul

Formation permanente ARS

7b. comparaison fausse :


connexion refuse

/etc/passwd
(ou /etc/shadow)

7a. comparaison OK :
connexion accepte

14

Authentification des comptes utilisateurs

Cycle du mot de passe et commande login

Si le mot de passe hash est saeLydiaFuF5o, on ralisera donc au login la comparaison C :

strcmp("saeLydiaFuF5o", crypt("XXXXXXXX", "sa"))


avec XXXXXXXX le mot de passe en clair.

Formation permanente ARS

Authentification des comptes utilisateurs

15

Shadow Passwords, /etc/shadow, <shadow.h>

32.6 Shadow Passwords, /etc/shadow, <shadow.h>


Lide part de la constatation que, si beaucoup de programmes accdent au contenu de

/etc/passwd pour les informations concernant UID, homedir, shell, peu en revanche laccdent
pour le mot de passe.

On supprime donc le mot de passe chiffr du fichier pour le stocker dans un fichier accs plus
restreints.
-rw-r--r--rw-------

root wheel 10557 Sep 15 22:51 /etc/passwd


root wheel 13318 Sep 15 22:50 /etc/master.passwd

Lancien mot de passe chiffr est remplac par exemple par un caractre comme * ou x :
besancon:x:4332:1000::/users/adm/besancon:/bin/bash

Formation permanente ARS

16

Authentification des comptes utilisateurs

Shadow Passwords, /etc/shadow, <shadow.h>

Plusieurs formats de fichiers shadow sont utiliss par les constructeurs qui ne se sont pas mis
daccord.

 Linux
Fichiers /etc/passwd et /etc/shadow
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
...
# cat /etc/shadow
root:fUQZjKzpwayTc:11237:0:99999:7:-1:-1:134540316
bin:*:11237:0:99999:7:::
daemon:*:11237:0:99999:7:::
adm:*:11237:0:99999:7:::
...

Formation permanente ARS

Authentification des comptes utilisateurs

17

Shadow Passwords, /etc/shadow, <shadow.h>

 Solaris Fichiers /etc/passwd et /etc/shadow


# cat /etc/passwd
root:x:0:1:Super-User:/:/sbin/sh
daemon:x:1:1::/:
bin:x:2:2::/usr/bin:
...
boumaiza:x:1001:1000:Lyazid Boumaiza:/net/serveur/home/ars/boumaiza:/bin/tcsh
corsini:x:1002:1000:Franck Corsini:/net/serveur/home/ars/corsini:/bin/tcsh
...
# cat /etc/shadow
root:y8fPbbq414TBU:6445::::::
daemon:NP:6445::::::
bin:NP:6445::::::
...
boumaiza:aalJCbuvX/xEM:11255::::::
corsini:5Ag56r/M.KD9A:10912::::::
...

Formation permanente ARS

18

Le fichier /etc/group, <grp.h>

Authentification des comptes utilisateurs

32.7 Le fichier /etc/group, <grp.h>


Le format est compos de 4 champs spars par le caractre : :

group : mot de passe : GID : membres

Pour la dfinition exacte sur sa machine, se reporter <grp.h>.


Par exemple, sur une machine Linux :
/* The group structure.
struct group
{
char *gr_name;
char *gr_passwd;
__gid_t gr_gid;
char **gr_mem;
};

*/

/*
/*
/*
/*

Group name.
Password.
Group ID.
Member list.

Formation permanente ARS

*/
*/
*/
*/

19

Le fichier /etc/group, <grp.h>

Authentification des comptes utilisateurs

champ 1 : group
Nom du groupe apparaissant par ls

-lg.

champ 2 : mot de passe


Mot de passe du groupe.
champ 3 : GID
Identificateur numrique compris entre 0 et 32767.
Sur Linux, cest un __gid_t, un unsigned int.
Cette valeur doit tre unique au sein des groupes.
champ 4 : membres
Liste de noms de login spars par des virgules.

Formation permanente ARS

20

Authentification des comptes utilisateurs

Cration dun nouveau compte

32.8 Cration dun nouveau compte

Action mcanique automatisable.

Selon le systme, elle est dj automatise sous la forme dune commande dadministration :
Systme

Program

AIX

smit

HP-UX

sam

Solaris

admintool

FreeBSD

adduser

etc.

Formation permanente ARS

Authentification des comptes utilisateurs

21

Cration dun nouveau compte

Exemple dinterface graphique de cration de compte :

Problme : comment crer 3000 comptes en une aprs-midi avec cette interface ?
Problme : comment personnaliser cette interface ?
Formation permanente ARS

22

Authentification des comptes utilisateurs

Cration dun nouveau compte

Actions schmatiques accomplir lors de la cration dun compte :

1. choix de lUID et du GID en fonction du service dappartenance de la personne


2. choix du homedir (en fonction du service ?)
3. choix du nom de login selon la politique locale
4. choix du shell de login
5. incorporation de ces informations dans la base de donnes des comptes (/etc/passwd ou
NIS selon la politique du service) ; * comme mot de passe par dfaut

Formation permanente ARS

Authentification des comptes utilisateurs

23

Cration dun nouveau compte

6. ajout de lutilisateur dans /etc/group


7. cration du homedir
8. copie des fichiers de configuration de lenvironnement (.profile, .cshrc, .xsession
etc.)
9. attribuer le homedir cr lutilisateur par chown + chgrp
10. initialisation du mot de passe si lutilisateur est prsent

Ltape dlicate dans une automatisation de cration de compte est bien sr lincorporation dune
nouvelle ligne dans la base de donnes.

Formation permanente ARS

24

Authentification des comptes utilisateurs

Compte root

32.9 Compte root


Sa particularit vient de son UID == 0.
Quelques rgles :
1. Lutilisateur

root na pas . dans son PATH (prcdence de la commande locale par rapport

la commande systme).
2. Lutilisateur

root a 022 pour umask (accessibilit indispensable de certains fichiers par les

utilisateurs normaux).
3. Eviter davoir

/ comme homedir pour root (pollution de / par les fichiers de configuration en

.foorc).

Formation permanente ARS

25

Authentification des comptes utilisateurs

Comptes fictifs

32.10 Comptes fictifs


Exemple de Linux :
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:
games:x:12:100:games:/usr/games:
gopher:x:13:30:gopher:/usr/lib/gopher-data:
ftp:x:14:50:FTP User:/home/ftp:
nobody:x:99:99:Nobody:/:
xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false
...
Formation permanente ARS

26

Authentification des comptes utilisateurs

Comptes fictifs

Ces utilisateurs fictifs sont essentiellement des propritaires de fichiers.

Par exemple bin est le propritaire de la plupart des excutables :


-rwxr-xr-x
-rws--x--x
-rwxr-xr-x

1 bin
1 root
1 bin

bin
bin
bin

A noter lemploi du bit s sur la commande

40960 Aug
24576 Aug
24576 Aug

9
9
9

1994 stty*
1994 su*
1994 sum*

su.  son excution se fait au nom du propritaire du

fichier, ici root.

Formation permanente ARS

27

Authentification des comptes utilisateurs

Commandes id, groups

32.11 Commandes id, groups


La commande

id renvoit votre UID et vos GID, primaire et secondaires :

% id
uid=1000(besancon) gid=4(adm) groups=4(adm),0(root),3(sys),\
12(daemon),1000(sae3),1002(www)

La commande

groups renvoit vos GID dappartenance :

% groups
adm root sys daemon sae3 www

Formation permanente ARS

28

Authentification des comptes utilisateurs

Commande su

32.12 Commande su

La commande

su permet de changer didentit :

su [-] utilisateur2

Vrification par demande du mot de passe de lutilisateur destination.

Pour hriter compltement de lidentit, utiliser loption "-" de la commande "su".

Formation permanente ARS

Authentification des comptes utilisateurs

29

Commande su

 Quand on se trompe sur le mot de passe :


% id
uid=4332(besancon) gid=1000(software) groups=1000(software)
% su besancon
Password:
Sorry

 Quand on donne le bon mot de passe :


% id
uid=4332(besancon) gid=1000(software) groups=1000(software)
% su beurnez
Password:
% id
uid=8520(beurnez) gid=8506(lps-06) groups=8506(lps-06)

Formation permanente ARS

30

Authentification des comptes utilisateurs

Commande su

Pour devenir root, la commande est donc simplement :

% su root
ce qui peut se simplifier encore en :

% su

Formation permanente ARS

Authentification des comptes utilisateurs

31

Commande su

Pour hriter compltement de lidentit, utiliser loption "-" de la commande "su".

 Exemple de transmission de donnes parasites de la premire identit la seconde identit :


% id
uid=4332(besancon) gid=1000(software) groups=1000(software)
% pwd
/users/adm/besancon
% su beurnez
% id
uid=8520(beurnez) gid=8506(lps-06) groups=8506(lps-06)
% pwd
/users/adm/besancon
% printenv
...
MAIL=/var/mail/besancon
...

Certaines variables denvironnement font encore rfrence lidentit de dpart !

Formation permanente ARS

32

Commande su

Authentification des comptes utilisateurs

 Exemple de non transmission de donnes parasites de la premire identit la seconde identit :


% id
uid=4332(besancon) gid=1000(software) groups=1000(software)
% pwd
/users/adm/besancon
% su - beurnez
% id
uid=8520(beurnez) gid=8506(lps-06) groups=8506(lps-06)
% pwd
/users/stat/beurnez
% printenv
...
MAIL=/var/mail/beurnez
...

Les variables denvironnement font rfrence maintenant au second utilisateur exclusivement.

Formation permanente ARS

33

Authentification des comptes utilisateurs

Deviner des mots de passe

32.13 Deviner des mots de passe


Lalgorithme DES sert hasher les mots de passe.
Si lon a accs au contenu de /etc/shadow (ou /etc/passwd en mode non protg), on
peut utiliser certains outils pour vrifier la complexit des mots de passe en appliquant des
dictionnaires et des rgles dapplications :
John the ripper, disponible http://www.openwall.com/john/
Crack, disponible http://www.users.dircon.co.uk/~crypto/

Formation permanente ARS

34

NIS

Chapitre 33 : NIS

NIS  Network Information Service


Cr par SUN en 1985
Anciennement Yellow Pages  certaines commandes ont un nom en "yp. . ."
Version NIS+ vers 1992, radicalement diffrente (cf annexe)

Cest un protocole rseau daccs des informations centralises sur un ou plusieurs serveurs
redondants.

Utilisation la plus courante : partager la base des comptes Unix.

Formation permanente ARS

35

NIS

Architecture de NIS

33.1 Architecture de NIS


Architecture construite en mode client / serveur :
Maitre
D
A
T
A

D
A
T
A

D
A
T
A

Mise a jour
push / pull

Esclave 1
D
A
T
A

Client 1

Formation permanente ARS

Client 2

D
A
T
A

Esclave 2
D
A
T
A

Client 3

D
A
T
A

D
A
T
A

Client 4

36

NIS

Architecture de NIS

Caractristiques :
Communications rseau via RPC (Remote Procedure Call)
Propagation des donnes (maps) du master server aux slave servers en mode pull ou en mode
push.
Propagation des maps compltes
Seul le master server peut modifier les donnes
Les slave servers diffusent les donnes sans pouvoir les modifier

Formation permanente ARS

37

Donnes NIS : maps NIS, DBM, ypcat, ypmatch

NIS

33.2 Donnes NIS : maps NIS, DBM, ypcat, ypmatch


Les donnes manipules par NIS : maps
Les maps contiennent des couples (clef, valeur).

Il ny a que le serveur NIS matre qui peut changer le contenu dune map.

Une map est au format DBM (cf man dbm) ; une map se compose de 3 fichiers :
le fichier source
le fichier de suffixe .pag
le fichier de suffixe .dir

Formation permanente ARS

38

Donnes NIS : maps NIS, DBM, ypcat, ypmatch

NIS

La commande

makedbm permet de convertir le fichier source en les 2 fichiers constituant le DBM.

% cat demo
clef1
banane
clef2
arbre
% makedbm demo demo
% ls -l demo test*
-rw-r--r-1 besancon adm
-rw------1 besancon adm
-rw------1 besancon adm

23 Aug 15 11:56 demo


0 Aug 15 11:57 demo.dir
1024 Aug 15 11:57 demo.pag

Dans le systme NIS, les maps sont stockes sur le master server dans

/var/yp/nom-du-domaine-NIS :
% cd /var/yp/nom-de-domaine-NIS
% ls -l passwd*
-rw------1 root
other
-rw------1 root
other
-rw------1 root
other
-rw------1 root
other

4096
8192
4096
8192

Nov
Nov
Nov
Nov

23
23
23
23

07:26
07:26
07:26
07:26

passwd.byname.dir
passwd.byname.pag
passwd.byuid.dir
passwd.byuid.pag

Formation permanente ARS

39

Donnes NIS : maps NIS, DBM, ypcat, ypmatch

NIS

Les maps sont construites automatiquement partir de tous les fichiers sources des maps :
passwd.byname
passwd.byuid
NIS
MASTER

/etc/hosts

makedbm

hosts.byname
hosts.byuid
/etc/passwd

Le fichier /var/yp/Makefile automatise toutes les crations de maps et leur propagation aux
slave servers (mode push).

Formation permanente ARS

40

Donnes NIS : maps NIS, DBM, ypcat, ypmatch

NIS

Extrait de /var/yp/Makefile :
...
hosts.time: $(DIR)/hosts
@($(MULTI) $(B) -l $(DIR)/hosts);
@($(STDHOSTS) $(DIR)/hosts $(CHKPIPE))| \
(awk BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$1, $$0 } $(CHKPIPE)) | \
$(MAKEDBM) $(B) - $(YPDBDIR)/$(DOM)/hosts.byaddr;
@touch hosts.time;
@echo "updated hosts";
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) hosts.byname; fi
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) hosts.byaddr; fi
@if [ ! $(NOPUSH) ]; then echo "pushed hosts"; fi
...

La construction dune map se rsume alors (par exemple suite une modification de

/etc/hosts) :
# vi /etc/hosts
# cd /var/yp
# make hosts
updated hosts

pushed hosts

Formation permanente ARS

41

Donnes NIS : maps NIS, DBM, ypcat, ypmatch

NIS

La librairie DBM permet de crer des enregistrements de taille maximale 1024 octets :
% man dbm
SunOS/BSD Compatibility Library Functions

dbm(3B)

NAME
dbm, dbminit, dbmclose, fetch,
nextkey - data base subroutines

store,

delete,

firstkey,

...
The sum of the sizes of a key/content pair must not exceed
the internal block size (currently 1024 bytes). Moreover
all key/content pairs that hash together must fit on a single block.
store will return an error in the event that a
disk block fills with inseparable data.

Formation permanente ARS

42

Donnes NIS : maps NIS, DBM, ypcat, ypmatch

NIS

Quelques noms de maps : passwd.byname, passwd.byuid, group.byname, group.bygid,


publickey.byname, hosts.byaddr, hosts.byname, mail.byaddr, mail.aliases,
services.byname, services.byservicename, rpc.bynumber, rpc.byname,
protocols.bynumber, protocols.byname, networks.byaddr, networks.byname,
netmasks.bymask, netmasks.byaddr, ethers.byname, ethers.byaddr, bootparams,
auto.master, auto.home, auto.direct, auto.src dont les plus utiles sont :

map passwd
map group
map hosts
map netgroup

Formation permanente ARS

Donnes NIS : maps NIS, DBM, ypcat, ypmatch

NIS

La commande

ypcat permet de consulter une map NIS depuis nimporte quel client.

Syntaxe : ypcat

La commande

43

map-NIS

ypmatch permet de consulter la valeur dune ou plusieurs clefs dans une certaine

map NIS depuis nimporte quel client.


Syntaxe : ypmap

clef1 clef2... map-NIS

Formation permanente ARS

44

Client NIS, domainname, ypbind, ypwhich, ypset

NIS

33.3 Client NIS, domainname, ypbind, ypwhich, ypset


Un client NIS doit se connecter un serveur NIS. Cest laction de binding.

Le binding ncessite :
de fournir un nom de domaine NIS, le domainname ;
une machine se dclare comme membre du groupe servi par les serveurs NIS
de prciser la mthode de localisation du serveur NIS : broadcast ou explicite

Formation permanente ARS

NIS

45

Client NIS, domainname, ypbind, ypwhich, ypset

Nom de domaine
La commande activant le nom de domaine est domainname.
Pour consulter le nom de domaine :

domainname
Pour configurer manuellement le nom de domaine : domainname

nom-du-domaine-NIS

Configuration du domainname automatique au dmarrage :


Sur Solaris : renseigner le fichier /etc/defaultdomain
Sur Linux : renseigner le fichier /etc/sysconfig/network
NETWORKING=yes
FORWARD_IPV4=false
HOSTNAME=pcars6.formation.jussieu.fr
DOMAINNAME=formation.jussieu.fr
GATEWAY=134.157.253.126
GATEWAYDEV=eth0
NISDOMAIN=real.world

Formation permanente ARS

46

Client NIS, domainname, ypbind, ypwhich, ypset

NIS

Ralisation du binding
Un client NIS fait tourner le dmon

ypbind qui se connecte un serveur NIS que lon trouve selon

2 mthodes possibles :
dcouverte par broadcast ; cest le mode par dfaut.
Sur Solaris, /usr/lib/netsvc/yp/ypbind

-broadcast

En pratique il y a une map ypservers qui contient les noms des serveurs.
Cf /var/yp/binding/nom-de-domaine-NIS/ypservers

demande de connexion explicite


Sur Solaris faire :

# ypbind -ypsetme
# ypset nom-du-serveur-NIS-voulu

La commande

ypwhich affiche le nom du serveur NIS utilis.

Formation permanente ARS

NIS

47

Client NIS, domainname, ypbind, ypwhich, ypset

On peut controler un peu quels sont les clients qui se bindent aux servers.
Pour cela, remplir sur les slave servers et sur le master server le fichier

/var/yp/securenets. Il liste les machines autorises, sous forme adresses et netmasks.

Par exemple :
159.169.0.0 255.255.0.0
129.187.135.0 255.255.255.0

Signification : seules les machines des rseaux 159.169.0.0/16 et 129.187.135.0/24


sont autorises se binder.

Formation permanente ARS

48

Client NIS, domainname, ypbind, ypwhich, ypset

NIS

Consultation des maps


Un client NIS doit indiquer quels maps il utilisera. La plus courante est la map passwd dont on
indique lutilisation par lajout dune ligne en fin de fichier /etc/passwd :
+::65534:65534:::

Signification de cette ligne supplmentaire ( vrifier sur chaque systme car il existe des
diffrences) :
Tout champ renseign de cette ligne + remplace le mme champ de la map
inconditionnellement sauf pour UID et GID.
Pour UID et GID, les valeurs mentionnes sactiveront si ces champs sont absents de la map
(cest--dire quand la map est vrole ce qui indique un problme de fichier source vrol).

Formation permanente ARS

NIS

49

Client NIS, domainname, ypbind, ypwhich, ypset

Exemple :
+:*LK*:65534:65534:::/usr/local/bin/tcsh

Signification :
le passwd chiffr des utilisateurs de la map passwd est *LK*
lUID sera 65534 si lentre de la map ne prcise pas dUID
le GID sera 65534 si lentre de la map ne prcise pas de GID
le shell de login est mis automatiquement /usr/local/bin/tcsh

Formation permanente ARS

50

Slave server NIS, ypserv, ypxfr

NIS

33.4 Slave server NIS, ypserv, ypxfr


Un serveur NIS esclave fait tourner plusieurs dmons :
ypserv
ypbind

Le dmon

ypserv est l pour rpondre aux requtes des client NIS qui se sont binds sur lui.

Le dmon

ypbind nest l que pour faire du slave server un client NIS aussi (mais ce nest pas

obligatoire).
Il nest pas garanti que le slave server soit client NIS de lui mme. Il peut se binder sur un autre
serveur NIS du mme domaine.

Formation permanente ARS

NIS

51

Slave server NIS, ypserv, ypxfr

Un slave server peut tre down au moment o un master slave fait un push des maps.

 besoin pour le slave server de se resynchroniser avec le master server ;


pull des maps de la part du slave server
Cela se fait au moyen de shell scripts lancs priodiquement via la crontab :
30 *
* * * /usr/lib/netsvc/yp/ypxfr_1perhour
31 1,13 * * * /usr/lib/netsvc/yp/ypxfr_2perday
32 1
* * * /usr/lib/netsvc/yp/ypxfr_1perday

Ces scripts rcuprent plus ou moins de maps suivant la frquence de leur lancement.
Exemple de lun de ces shell scripts, ypxfr_1perhour :
#! /bin/sh
# ypxfr_1perhour.sh - Do hourly NIS map check/updates
PATH=/bin:/usr/bin:/usr/lib/netsvc/yp:$PATH
export PATH
ypxfr passwd.byname
ypxfr passwd.byuid

Formation permanente ARS

52

Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd

NIS

33.5 Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd


Un serveur NIS matre fait tourner plusieurs dmons :
ypserv
ypbind
ypxfrd
rpc.yppasswdd

Mme rle pour

ypserv que pour un slave server.

Mme rle pour

ypbind que pour un slave server.

Le dmon

ypxfrd assure les transferts de maps demands par les slave servers (mode pull). (en

Unix, on rencontre souvent le mot xfr pour transfert)

Le dmon

rpc.yppasswdd assure le changement des mots de passe.

Formation permanente ARS

NIS

53

Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd

Avec NIS, un client NIS ne peut pas modifier le contenu dune map.
Pour changer un mot de passe, on va muler le changement du mot de passe sur le master server
dans son fichier source (/etc/passwd) puis la reconstruction de la map passwd et sa
transmission en totalit aux slave servers.

Ce processus se ralise en utilisant la commande yppasswd qui demande les mots de passe
lutilisateur puis appelle rpc.yppasswdd sur le master server qui simule la session interactive
compose des commandes :
# passwd
# cd /var/yp
# make passwd

Formation permanente ARS

54

Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd

NIS

Sur un client NIS Linux :


% yppasswd
Changing NIS account information for besancon on serveur.
Please enter old password: ********
Changing NIS password for besancon on serveur.
Please enter new password: ********
Please retype new password: ********
The NIS password has been changed on serveur.

Sur un master server NIS Solaris :


% yppasswd
Enter login(NIS) password: ********
New password: ********
Re-enter new password: ********
NIS passwd/attributes changed on serveur

Formation permanente ARS

55

NIS

Netgroups

33.6 Netgroups
Le systme NIS permet de dfinir des groupes dautorisation daccs : les netgroups. Ces groupes
sont diffuss via la map netgroup.

Un netgroup est un nom symbolique associ un ensemble de triplets (je nai jamais vu le troisime
champ avoir une quelconque utilit en pratique) :
nom-de-netgroup \
(machine, utilisateur, nom-de-domaine-NIS) \
(machine, utilisateur, nom-de-domaine-NIS) \
...

On dfinit en pratique des netgroups concernant des machines et des netgroups concernant des
utilisateurs. On autorisera ainsi ou pas des groupes dutilisateurs ou de machines accder
certaines ressources.

Formation permanente ARS

56

NIS

Netgroups

Exemple de netgroup de machines :


nains \
(atchoum.phys.ens.fr,,physique) \
(dormeur.phys.ens.fr,,physique) \
(joyeux.phys.ens.fr,,physique) \
(grincheux.phys.ens.fr,,physique) \
(prof.phys.ens.fr,,physique) \
(timide.phys.ens.fr,,physique) \
(simplet.phys.ens.fr,,physique)

Exemple de netgroup dutilisateurs :


etudiants \
(,jean,) \
(,pierre,) \
(,valerie,)

Formation permanente ARS

57

NIS

Netgroups

Exemple dutilisation dun netgroup dutilisateurs au niveau de /etc/passwd :


field:PASSWORD HERE:0:1:Field Service:/usr/field:/bin/csh
operator:PASSWORD HERE:5:28:Operator:/opr:/opr/opser
sys:PASSWORD HERE:2:3:Mr Kernel:/usr/sys:
bin:PASSWORD HERE:3:4:Mr Binary:/bin:
pot:*:16:16:MenuPot:/users/staffs/pot:
-@etudiants:
+@net_administrateurs::0:0:::
+@net_utilisateurs::65534:65534:::/bin/noshell

Signification :
On rejette les lignes de la map passwd dont le login est indiqu dans le netgroup

etudiants

On accepte les lignes de la map passwd dont le login est indiqu dans le netgroup

net_administrateurs
On accepte les lignes de la map passwd dont le login est indiqu dans le netgroup

net_utilisateurs

Formation permanente ARS

58

NIS

Netgroups

Exemple dutilisation dun netgroup de machines au niveau de lexportation de disques via NFS
(fichier /etc/exports, cf chapitre sur NFS) :
/usr/openwin

-access=nains

Formation permanente ARS

59

NIS

Installation de NIS

33.7 Installation de NIS


Master server
Lancer ypinit

-m

Slave servers
Lancer ypinit

-s master-server

Ajouter dans la crontab les appels aux scripts ypxfr_*

Client NIS
Spcifier le domainname
Formation permanente ARS

60

NIS+

Chapitre 34 : NIS+

Cf annexe pour un document sur NIS+.


Nous nvoquerons ici que les dfauts de NIS ayant conduit lapparition de son successeur, NIS+.
Le systme NIS+ na pas connu de succs et il est maintenant officiellement abandonn au profit de
LDAP par son principal dfenseur, SUN.

Principaux reproches NIS :


pas dauthentification du client aux serveurs NIS ; connaitre le domainname suffit se binder
les maps sont transmises en totalit mme en cas de faible modification de leurs contenus
inadaption du principe du domaine NIS dans le cas de structures WAN
mode broadcast
Formation permanente ARS

61

LDAP

Chapitre 35 : LDAP

35.1 Problmatique
Cas de luniversit de Paris 4 :
base Microsoft Excel du personnel administratif
base Microsoft Access du personnel enseignant
base /etc/passwd des comptes email des utilisateurs
base mysql des 2 catgories de personnel
prochainement logiciel base dOracle
prochainement Microsoft Active Directory
Date XYZ : envoyer un email tous les personnels administratifs sachant que le service du
personnel ne fournira quune liste avec nom et prnom. Comment lingnieur systme fait-il ?
Date XYZ2 : envoyer un email tous les personnels administratifs sauf ceux du site de Clignancourt,
sachant que le service du personnel ne peut pas fournir de liste cette fois-ci. Comment lingnieur
systme fait-il ?
Formation permanente ARS

62

LDAP

Principe dannuaire

35.2 Principe dannuaire


Un annuaire informatique est un service permettant daccder des informations, relatives des
personnes ou diverses ressources de faon organise.
Objectif : maintenir de faon cohrente et contrle les archipels de donnes et obtenir des donnes
de rfrence.
Un annuaire nest pas une base de donnes relationnelles.
Une base de donnes (SGBD) se caractrise par :
Le schma des donnes est dfini 100% pour rsoudre un certain problme.
Les applications connaissent explicitement le schma des donnes.
Les objets sont complexes et clats entre plusieurs tables lies par des relations complexes.
Un SGBD supporte les transactions.
Un SGBD supporte un langage comme SQL qui permet des fonctions dinterrogation et de mises
jour trs complexes.
Un SGBD centralise les donnes pour viter les problmes de synchronisation de donnes et de
qualit des temps de rponse.
Formation permanente ARS

63

LDAP

Principe dannuaire

Un annuaire se caractrise par :


Les objets sont indpendants (pas de liens de dpendance entre eux).
Les objets peuvent tre distribu sur plusieurs annuaires pour assurer une meilleure disponibilit.
Le schma est standardis pour pouvoir partager les donnes.
Le schma est extensible pour prendre en compte tous les besoins mais cela est fait de faon
compatible avec les standards.
Les applications dannuaire ignorent la structure interne des donnes.
Un annuaire est principalement consult en lecture et est optimis pour cela.

Formation permanente ARS

64

LDAP

Annuaire LDAP

35.3 Annuaire LDAP


LDAP  Lightweight Directory Access Protocol
Hritier de lannuaire ISO X500.
Version 3 actuellement. RFC 2251 2256, RFC 2829 2830, RFC 2849.
Il ny a pas de standard de reprsentation des contrles daccs aux donnes.

LDAP :
nom dun protocole
nom dune structure de donnes
nom dimplmentations de serveurs suivant le protocole
Confusion possible. . .

Formation permanente ARS

65

LDAP

Modle de donnes de LDAP : DIT, suffixe

35.4 Modle de donnes de LDAP : DIT, suffixe


Les entres sont organises sous forme darbre ou DIT (Directory Information Tree).
Lune des difficults de LDAP : construire lorganisation du DIT. De quoi est-il le reflet ?

DIT caractre organisationnel ?


dc=company,dc=com

dc=recherche

dc=finance

dc=marketing

dc=people

dc=people

dc=people

dc=groups

dc=groups

dc=groups

Formation permanente ARS

66

LDAP

Modle de donnes de LDAP : DIT, suffixe

DIT caractre gographique ?


dc=company,dc=com

dc=america

dc=europe

dc=asia

dc=people

dc=people

dc=people

dc=groups

dc=groups

dc=groups

Pas de solution universelle.

Formation permanente ARS

67

LDAP

Modle de donnes de LDAP : DIT, suffixe

La racine de larbre est uniquement conceptuelle et nexiste pas rellement. Cest le suffixe qui sert
dterminer les adresses absolues des objets (comme / pour larborescence des fichiers Unix).

dc=company,dc=com

dc=recherche

dc=finance

SUFFIXE

dc=marketing

dc=people

dc=people

dc=people

dc=groups

dc=groups

dc=groups

Le suffixe peut avoir plusieurs formes :


forme 1 : o=company.com
forme 2 : o=company,c=fr
forme 3 : dc=company,dc=com
On prfrera la 3ime forme, ayant un certain rapport avec les noms de domaine DNS.
Formation permanente ARS

LDAP

68

Modle de donnes de LDAP : DIT, suffixe

Exemple de DIT visualis avec LdapBrowser disponible lURL

http://www.iit.edu/~gawojar/dap/ :

Formation permanente ARS

69

LDAP

Modle de donnes de LDAP : entre, attributs, DN, URL

35.5 Modle de donnes de LDAP : entre, attributs, DN, URL


DSE  Directory Service Entry
Les entres dans le DIT (DSE) sont des agrgats dattributs monovalus ou multivalus qui
permettent de stocker nimporte quel format de donnes (prnom, numro de tlphone, image, son,
etc.)
Les DSE sont stockes dans le DIT et arrangs selon leur identifiant unique, le DN (Distinguished
Name). Un DN est la concatnation dun RDN (Relative DN) et du DN des parents. Un DN
sapparente une clef primaire.
suffixe : dc=company,dc=com

RDN : ou=Recherche
DN : ou=Recherche,dc=company,dc=com

RDN : uid=besancon
DN : uid=besancon,ou=Recherche,dc=company,dc=com

(le RDN doit tre un des attributs/valeurs du DSE)


Formation permanente ARS

LDAP

Formation permanente ARS

70

Modle de donnes de LDAP : entre, attributs, DN, URL

71

LDAP

Modle de donnes de LDAP : entre, attributs, DN, URL

Il existe des URL LDAP (RC 2255) qui prennent la forme :

ldap://serveur:389/DN
Par exemple dans communicator de netscape :

Formation permanente ARS

LDAP

72

Modle de donnes de LDAP : schma, syntaxes, OID, objectclass

35.6 Modle de donnes de LDAP : schma, syntaxes, OID, objectclass


Le schma du DIT regroupe les dfinitions relatives aux types dobjets que peut contenir lannuaire
ou que lon peut rechercher.
Le schma contiendra des objets instanciations de classes LDAP, les dfinitions de ces classes et
de leurs attributs, les syntaxes de ces attributs.
Tous ces lments seront identifis par des Object Identifiers dits OID.
attributetype ( 1.3.6.1.1.1.1.0 NAME uidNumber
DESC An integer uniquely identifying a user in a domain
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
objectclass ( 1.3.6.1.1.1.2.0 NAME posixAccount SUP top AUXILIARY
DESC Abstraction of an account with POSIX attributes
MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
MAY ( userPassword $ loginShell $ gecos $ description ) )
(1.3.6.1.1.1.1.0 et 1.3.6.1.4.1.1466.115.121.1.27 sont des OIDS)

Formation permanente ARS

73

LDAP

Modle de donnes de LDAP : schma, syntaxes, OID, objectclass

Une syntaxe est un modle de reprsentation des valeurs de lattribut. Par exemple boolen, entier,
binaire (pour une image, un son), etc.
Lattribut objectclass spcifie la liste des classes quinstancie un DSE. Chaque classe va
construire la structure du DSE en spcifiant une liste dattributs obligatoirement prsents (MUST
dans lobjectclass) et une liste dattributs facultatifs (MAY dans lobjectclass).
objectclass
( 2.16.840.1.113730.3.2.2
NAME inetOrgPerson DESC RFC2798: Internet Organizational Person
SUP organizationalPerson STRUCTURAL
MAY (
audio $ businessCategory $ carLicense $ departmentNumber $
displayName $ employeeNumber $ employeeType $ givenName $
homePhone $ homePostalAddress $ initials $ jpegPhoto $
labeledURI $ mail $ manager $ mobile $ o $ pager $
photo $ roomNumber $ secretary $ uid $ userCertificate $
x500uniqueIdentifier $ preferredLanguage $
userSMIMECertificate $ userPKCS12 ) )
objectclass ( 1.3.6.1.1.1.2.0 NAME posixAccount SUP top AUXILIARY
DESC Abstraction of an account with POSIX attributes
MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
MAY ( userPassword $ loginShell $ gecos $ description ) )

 lattribut uid sera de type MUST.


Formation permanente ARS

74

LDAP

Modle de donnes de LDAP : schma, syntaxes, OID, objectclass

Les objectclass de LDAP sinscrivent dans un hirarchie dont la racine est lobjectclass top.
Chaque classe hrite dune seule classe mre.
Chaque classe peut donner lieu plusieurs sous classes.
(Abstract)

top

(Structural)

person

(Structural)

organizationalPerson

Formation permanente ARS

(Auxiliary)

companyPerson

(Structural)

residentialPerson

75

LDAP

Protocole LDAP / Bind

35.7 Protocole LDAP / Bind


Au niveau rseau :
LDAP : TCP port 389
LDAP + SSL : TCP port 636
( syntaxe LDAP au format ASN.1 ) + BER

Un dialogue LDAP stablit aprs une phase douverture de session dite bind.
Le bind peut tre anonyme ou authentifi.

Formation permanente ARS

76

LDAP

Format de donnes LDIF

35.8 Format de donnes LDIF


Problme : comment manipuler les objets LDAP en pratique ?
Rponse : en les manipulant au format LDAP Data Interexchange Format, dit LDIF

LDIF nintervient pas dans le protocole LDAP (pas de mention dans les RFC par exemple).
LDIF nest compris que par les utilitaires qui le convertissent en protocole LDAP.

Formation permanente ARS

77

LDAP

Format de donnes LDIF

Attention aux caractres non ASCII :


si la valeur dun attribut est uniquement compos de caractres ASCII, on lcrit

attribut : valeur
si la valeur dun attribut contient des caractres non ASCII, il faut coder cette valeur en Base64
puis la coder en UTF-8 et crire au final attribut

:: valeur2

Par exemple lattribut description de valeur


Universit de Paris-Sorbonne, Paris 4

ne sera pas cod en LDIF sous la forme


description: Universit de Paris-Sorbonne, Paris 4

mais sous la forme


description:: VW5pdmVyc2l0w6kgZGUgUGFyaXMtU29yYm9ubmUsIFBhcmlzIDQ=!

Notez les diffrences !


2 utilitaires pratiques :

http://docs.univ-nancy2.fr/ldap/OutilsPERL/DecodLDIF.pl
http://docs.univ-nancy2.fr/ldap/OutilsPERL/EncodLDIF.pl

Formation permanente ARS

LDAP

78

Format de donnes LDIF

Exemple dune DSE avec des caractres accentus non encore cods en LDIF :
dn: ou=Personnel,dc=paris4,dc=sorbonne,dc=fr
objectclass: top
objectclass: organizationalUnit
ou: Personnels de lUniversit de Paris-Sorbonne, Paris 4
businessCategory: academic research
telephoneNumber: +33 (0) 1 40 46 22 11
facsimileTelephoneNumber: +33 (0) 1 40 46 25 88
postOfficeBox: Universit de Paris-Sorbonne, Paris 4
postalCode: F-75230
postalAddress: 1 rue Victor Cousin
l: Paris, France
description: Universit de Paris-Sorbonne, Paris 4

Exemple dune DSE au format LDIF :


dn: ou=Personnel,dc=paris4,dc=sorbonne,dc=fr
objectclass: top
objectclass: organizationalUnit
ou:: UGVyc29ubmVscyBkZSBsJ1VuaXZlcnNpdMOpIGRlIFBhcmlzLVNvcmJvbm5lLCBQYXJpcyA0
businessCategory: academic research
telephoneNumber: +33 (0) 1 40 46 22 11
facsimileTelephoneNumber: +33 (0) 1 40 46 25 88
postOfficeBox:: VW5pdmVyc2l0w6kgZGUgUGFyaXMtU29yYm9ubmUsIFBhcmlzIDQ=
postalCode: F-75230
postalAddress: 1 rue Victor Cousin
l: Paris, France
description::
VW5pdmVyc2l0w6kgZGUgUGFyaXMtU29yYm9ubmUsIFBhcmlzIDQ=
Formation permanente ARS

79

LDAP

Implmentations

35.9 Implmentations
Il existe plusieurs implmentations de LDAP :
OpenLdap,

http://ww.openldap.org, version 2.1.3 (au 21 aot 2002)

Iplanet Directory (anciennement Netscape Directory Server, rachet par SUN), incorpor de base
dans Solaris 8 et ultrieur
Novell Directory Services, version 4 ?
Les diffrentes implmentations respectent les normes du protocole. Par contre, elles diffrent au
niveau de tout ce qui nest pas norme. En particulier, les droits daccs aux donnes sont cods de
faon incompatible.

Formation permanente ARS

80

LDAP

OpenLDAP

35.10 OpenLDAP
Cf http://www.openldap.org/
Les versions 2.x.y dOpenLDAP sont compatibles avec les normes de LDAP v3.

Le logiciel se compose de :
du serveur LDAP slapd

slurpd
dutilitaires (slapadd ldapsearch, ldapadd, ldapdelete, ldapmodify,
ldappasswd, etc.)
du serveur de synchronisation

librairies, include LDAP


un fichier de configuration

slapd.conf dans lequel on dfinit le suffixe, le rootDN, le mot de

passe du rootDN

Formation permanente ARS

81

LDAP

OpenLDAP

Le mcanisme de rplication de serveurs OpenLDAP est le suivant :

1) demande de modification

slapd
2) rponse : referral

7)

slurpd

(Esclave)

client

6)

3) demande de modification

slapd
4) rponse (OK/not OK)

(Maitre)

5)

Journal des
modifications

Formation permanente ARS

82

ObjectClass posixAccount, shadowAccount

LDAP

35.11 ObjectClass posixAccount, shadowAccount


Cf RFC2307
Cf le schma nis.schema dans OpenLDAP.
Lobjectclass posixAccount est lobjet qui implmente lquivalent de la structure C de

<pwd.h> :
objectclass ( 1.3.6.1.1.1.2.0 NAME posixAccount SUP top AUXILIARY
DESC Abstraction of an account with POSIX attributes
MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
MAY ( userPassword $ loginShell $ gecos $ description ) )

Lobjectclass shadowAccount est lobjet qui implmente le principe des shadow passwds :
objectclass ( 1.3.6.1.1.1.2.1 NAME shadowAccount SUP top AUXILIARY
DESC Additional attributes for shadow passwords
MUST uid
MAY ( userPassword $ shadowLastChange $ shadowMin $
shadowMax $ shadowWarning $ shadowInactive $
shadowExpire $ shadowFlag $ description ) )

Formation permanente ARS

83

LDAP

Un peu de bibliographie

35.12 Un peu de bibliographie

http://docs.univ-nancy2.fr/ldap/

http://www.openldap.org/
http://www.linux-france.org/article/serveur/ldap/
http://www.unich.edu/~dirsvc/ldap/
http://www.redbooks.ibm.com
http://www-sop.inria.fr/semir/personnel/Laurent.Mirtain/LDAP.html
http://www.cru.fr/ldap/
http://www.ldapcentral.com
http://www.rage.net/ldap/
http://www.annuairesldap.com

Formation permanente ARS

84

Slection de naming services, /etc/nsswitch.conf

Chapitre 36 : Slection de naming services, /etc/nsswitch.conf

36.1 Problmatique
Exemple :
il y a les fichiers systme (/etc/passwd, /etc/hosts, /etc/services, . . .)
il y a le DNS
il y a NIS
il y a NIS+
il y a LDAP
etc.
Comment choisir quels services rpondront aux requtes de recherche de nom ?
Une solution : prciser quels naming services seront utiliss et dans quel ordre au niveau du fichier

/etc/nsswitch.conf (naming service switch).


Formation permanente ARS

85

Slection de naming services, /etc/nsswitch.conf

Syntaxe de /etc/nsswitch.conf

36.2 Syntaxe de /etc/nsswitch.conf


Le fichier est au format suivant :
service: source [ status=action status=sction... ] source...

avec :
pour source lun des mots clef files, dns, ldap, nis, nisplus, xfn (liste vrifier selon
les systmes Unix offrant plus ou moins de ces services)

pour status lun des mots clef suivants :

SUCCESS, entre recherche trouve


NOTFOUND, entre recherche non trouve
UNAVAIL, la source nest pas configure sur ce systme ou bien elle est dfaillante
TRYAGAIN, la source est occupe et ne peut pas rpondre actuellement, peut-tre plus tard

Formation permanente ARS

86

Slection de naming services, /etc/nsswitch.conf

Syntaxe de /etc/nsswitch.conf

pour action lun des mots clefs :

return, retourner la valeur trouve ou la non valeur


continue, essayer la source suivante
forever (uniquement pour TRYAGAIN), persister sur cette source jusqu avoir une

rponse

Par dfaut, on a pour chaque source :


[SUCCESS=return

NOTFOUND=continue

UNAVAIL=continue

TRYAGAIN=forever]

Formation permanente ARS

Slection de naming services, /etc/nsswitch.conf

87

Exemple de /etc/nsswitch.conf

36.3 Exemple de /etc/nsswitch.conf


(pris sur SOLARIS)
passwd:
files ldap
group:
files ldap
hosts:
ldap [NOTFOUND=return] files
ipnodes:
files
networks:
ldap [NOTFOUND=return] files
protocols: ldap [NOTFOUND=return] files
rpc:
ldap [NOTFOUND=return] files
ethers:
ldap [NOTFOUND=return] files
netmasks:
ldap [NOTFOUND=return] files
bootparams: ldap [NOTFOUND=return] files
publickey: ldap [NOTFOUND=return] files
netgroup:
ldap
automount: files ldap
aliases:
files ldap
# for efficient getservbyname() avoid ldap
services:
files ldap
sendmailvars:
files
# role-based access control
auth_attr: files ldap
exec_attr: files ldap
prof_attr: files ldap
user_attr: files ldap
# audit
audit_user: files ldap
project:
files ldap

Formation permanente ARS

88

Slection de naming services, /etc/nsswitch.conf

A propos de LDAP

36.4 A propos de LDAP


Pour les systmes nincorporant pas LDAP en natif dans lOS, se reporter :

http://www.padl.com/download/nss_ldap.tgz
http://www.openldap.org/

Formation permanente ARS

89

Pluggable Authentification Module, PAM

Chapitre 37 : Pluggable Authentification Module, PAM

37.1 Problmatique
Exemple :
Soit une machine dans une universit, hbergeant les comptes de 10 professeurs et de 1000
lves.
La machine est quipe dun modem.
Les professeurs sont autoriss se connecter la machine par modem, pas les lves.
La machine est cliente NIS.
Quand on se connecte par modem sur une machine, le systme lance la commande

login

lorsque la connexion stablit.

Comment implmenter cela ?


En modifiant le programme

login pour ladapter ce cas trs particulier ? ? ?

Formation permanente ARS

Pluggable Authentification Module, PAM

90

Problmatique

La problmatique en gnral :
Comment changer une mthode dauthentification dans un programme (par exemple FTP) sans avoir
tout reprogrammer ?

Une solution dveloppe par SUN lorigine et reprise et encourage dans Linux :
Pluggable Authentification Module dit PAM

Formation permanente ARS

91

Pluggable Authentification Module, PAM

Principe de PAM

37.2 Principe de PAM


Lauthentication fait appel par lintermdiaire de PAM des modules externes de code
dauthentification approprie selon le service. On dporte lauthentification en dehors du programme.
4 catgories de modules PAM :
module dauthentification (authentication)
fonctionnalits pour authentifier un utilisateur et dfinir ses crances
module de gestion de compte (account management)
fonctionnalits pour dterminer si lutilisateur dispose dun compte valide (car possibilit
dexpiration de mot de passe dit password aging, de restrictions daccs horaire)
module de gestion de session (session management)
fonctionnalits pour dfinir et terminer les sessions utilisateur
module de gestion de mot de passe (password management)
fonctionnalits pour changer un mot de passe utilisateur et certaines caractristiques du compte
Pour une certaine application, on organise les modules ncessaires sous forme dune pile et chaque
module de la pile va tre essay pour constituer lauthentification demande.
Selon la configuration, un utilisateur pourra tre amen rentrer plusieurs mots de passe.
Formation permanente ARS

92

Fichier de configuration /etc/pam.conf

Pluggable Authentification Module, PAM

37.3 Fichier de configuration /etc/pam.conf

/etc/pam.conf dfinit quels modules seront utiliss pour chaque application.


(Sur Linux, on trouve aussi le rpertoire /etc/pam.d qui contient un fichier par application portant le nom de
lapplication. Ainsi /etc/pam.d/login pour le service login.)

Une ligne de /etc/pam.conf contient 5 champs :


service_name

module_type

control_flag

module_path

options

Le service_name nomme le service concern par la ligne (other pour service joker)
Le module_type est lun des 4 mots clef : auth, account, session, password
Le control_flag est lun des 4 mots clef : requisite, required, optional,

sufficient
Le module_path est le chemin du module.
Les options dpendent du module.

Formation permanente ARS

93

Fichier de configuration /etc/pam.conf

Pluggable Authentification Module, PAM

Par exemple, le service login fait appel aux modules suivants :


# Authentication management
login
auth
required
login
auth
required
# Account management
login
account
requisite
login
account
required
login
account
required
# Session management
other
session
required
# Password management
other
password required

/usr/lib/security/pam_unix.so.1
/usr/lib/security/pam_dial_auth.so.1
/usr/lib/security/pam_roles.so.1
/usr/lib/security/pam_projects.so.1
/usr/lib/security/pam_unix.so.1
/usr/lib/security/pam_unix.so.1
/usr/lib/security/pam_unix.so.1

Formation permanente ARS

94

Pluggable Authentification Module, PAM

Directives dessai des modules

37.4 Directives dessai des modules


Les directives possibles dessai des modules sont :
directive required
la valeur de retour de ce module doit tre PAM_SUCCESS pour sortir de la pile dauthentification
avec succs ; PAM_AUTH_ERR fera recommencer toute la pile
directive requisite
une valeur de retour PAM_AUTH_ERR fait sortir de la pile dauthentification prmaturment en
chec
directive optional
si ce module choue, on sortira de la pile avec succs si un autre module dans la pile russit
directive sufficient
une valeur de retour PAM_SUCCESS de ce module fait sortir de la pile dauthentification
prmaturment avec succs ; les autres modules dans la pile ne sont pas pris en compte

Formation permanente ARS

95

Pluggable Authentification Module, PAM

Modules, /usr/lib/security

37.5 Modules, /usr/lib/security


Les modules sont conventionnellement stocks dans /usr/lib/security/
Par exemple sur Solaris :
% ls /usr/lib/security
amiserv
pam_ldap.so.1
pam_ami.so
pam_projects.so
pam_ami.so.1
pam_projects.so.1
pam_dial_auth.so
pam_rhosts_auth.so
pam_dial_auth.so.1
pam_rhosts_auth.so.1
pam_krb5.so
pam_roles.so
pam_krb5.so.1
pam_roles.so.1
pam_ldap.so
pam_sample.so

pam_sample.so.1
pam_smartcard.so
pam_smartcard.so.1
pam_unix.so
pam_unix.so.1
sparcv9

Chaque module fournit limplmentation dun mcanisme spcifique.

Formation permanente ARS

Pluggable Authentification Module, PAM

96

Modules, /usr/lib/security

/usr/lib/security/pam_unix.so.1 fournit un suport dauthentification, gestion de


compte, session de mot de passe. Il utilise les mots de passe Unix pour lauthenfication.

/usr/lib/security/pam_dial_auth.so.1 peut seulement tre utilis pour


lauthentification. Il utilise des donnes stockes dans /etc/dialups et /etc/d_passwd.
Principalement utilis par login.

/usr/lib/security/pam_rhosts_auth.so.1 peut seulement tre utilis pour


lauthentification. Il utilise les donnes stockes dans les fichiers .rhosts et
/etc/hosts.equiv. Principalement utilis par rlogin et rsh.

Formation permanente ARS

97

Pluggable Authentification Module, PAM

Options des modules

37.6 Options des modules


On peut passer certaines options aux modules
des options spcifiques chaque module ; cf la documentation de chaque module ; par exemple

retry=3 ou debug
option use_first_pass
Cette option indique dutiliser exclusivement le mot de passe entr pour le premier module de la
pile du service.
option try_first_pass
Cette option indique dutiliser dabord le mot de passe entr pour le premier module de la pile du
service et en cas dchec de ce mot de passe den demander un autre.

(Le support des options use_first_pass et try_first_pass est fortement conseill auprs des
dveloppeurs de modules PAM ; vrifier donc avec chaque module)

Formation permanente ARS

98

Pluggable Authentification Module, PAM

Exemple 1

37.7 Exemple 1
Extrait de /etc/pam.conf :
# Authentication management
login auth required /usr/lib/security/pam_unix.so.1
login auth required /usr/lib/security/pam_dial_auth.so.1
Fichier /etc/dialups :
/dev/pts/9
Fichier /etc/d_passwd
/bin/bash:nuemRW70uy9M.:

Session interactive :
% tty
/dev/pts/9
% exec login
exec login
login: besancon
Password: XXXXXXXX <-- mot de passe
Dialup Password: YYYYYYYY <-- mot de passe
%% <-- connexion tablie, shell lanc
On voit bien la ligne supplmentaire Dialup
Formation permanente ARS

Password:
99

Pluggable Authentification Module, PAM

Exemple 1

Si lon se trompe dans lun des mots de passe, toutes les demandes de mot de passe sont
ressayes :
% exec login
login: besancon
Password: ZZZZZZZZ <-- mauvais mot de passe
Dialup Password: YYYYYYYY <-- mot de passe OK
Login incorrect
login: besancon
Password: XXXXXXXX <-- mot de passe OK
Dialup Password: ZZZZZZZZ <-- mauvais mot de passe
Login incorrect
login: besancon
Password: XXXXXXXX <-- mot de passe OK
Dialup Password: YYYYYYYY <-- mot de passe OK
%% <-- connexion tablie, shell lanc

Au niveau SYSLOG, a laisse quelques traces :


Aug 20 14:51:14 cerise login: [ID 427203 auth.debug] pam_authenticate: error Authentication failed
...
Aug 20 14:51:34 cerise login: [ID 427203 auth.debug] pam_authenticate: error Authentication failed

Formation permanente ARS

100

Pluggable Authentification Module, PAM

Exemple 2

37.8 Exemple 2
Pour autoriser lauthentification par LDAP, on mettra dans /etc/pam.conf :
# Authentication management
login auth sufficient /usr/lib/security/pam_unix.so.1
login auth required
/usr/lib/security/pam_ldap.so.1

Formation permanente ARS

use_first_pass

101

Pluggable Authentification Module, PAM

A propos de LDAP

37.9 A propos de LDAP


Pour les systmes nincorporant pas LDAP en natif dans lOS, se reporter :

http://diamond.rug.ac.be/pam_LDAP/index.shtml

Formation permanente ARS

102

Pluggable Authentification Module, PAM

Un peu de bibliographie

37.10 Un peu de bibliographie

http://www.sun.com/software/solaris/pam/
http://www.kernel.org/pub/linux/libs/pam/
http://www.netlogic.ro/linuxdoc/pam-0.64/html/pam.html
http://www.mailgate.org/mailgate/LINUX/linux.redhat.pam/

Formation permanente ARS

103

Connexion des utilisateurs

Chapitre 38 : Connexion des utilisateurs


38.1 Fichier utmp
Cf <utmp.h>
Traditionnellement

/var/adm/utmp ou /etc/utmp.

Ce fichier contient des informations concernant les accs des utilisateurs et concernant les reboots
de la machine.
struct utmp {
char ut_user[8];
char ut_id[4];
char ut_line[12];
short ut_pid;
short ut_type;
struct exit_status ut_exit;
time_t ut_time;

/*
/*
/*
/*
/*
/*
/*
/*

User login name */


/etc/inittab id(usually line #) */
device name (console, lnxx) */
short for compat. - process id */
type of entry */
The exit status of a process */
marked as DEAD_PROCESS. */
time entry was made */

};
Formation permanente ARS

Connexion des utilisateurs

104

Fichier utmp

Ce fichier ne grossit pas vraiment :


un enregistrement est crit la connexion dun utilisateur et mentionne le couple (utilisateur,
terminal)
lenregistrement est marqu de type USER_PROCESS
lorsque la connexion se termine, lenregistrement est marqu DEAD_PROCESS
la prochaine connexion du mme utilisateur sur le mme terminal, on rutilisera cet
enregistrement.

Formation permanente ARS

105

Fichier utmpx

Connexion des utilisateurs

38.2 Fichier utmpx


Cf <utmpx.h>
Cest une extension de la structure utmp :
struct utmpx {
char
ut_user[32];
char
ut_id[4];
char
ut_line[32];
pid_t
ut_pid;
short
ut_type;
struct ut_exit_status ut_exit;
struct timeval ut_tv;
int
ut_session;
int
__pad[5];
short
ut_syslen;
char

ut_host[257];

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

user login name */


inittab id */
device name (console, lnxx) */
process id */
type of entry */
process termination/exit status */
time entry was made */
session ID, used for windowing */
reserved for future use */
significant length of ut_host */
including terminating null */
remote host name */

};

Le principe reste le mme sauf que le fichier stockant les donnes est /var/adm/utmpx.h
Formation permanente ARS

106

Fichier wtmp

Connexion des utilisateurs

38.3 Fichier wtmp


Cf <utmp.h>
Traditionnellement

/var/adm/wtmp ou /etc/wtmp.

Ce fichier contient les historiques des connexions des utilisateurs et de laccounting.


Ce fichier grossit au cours du temps car on y accumule les enregistrements

utmp en fin de fichier.

38.4 Fichier wtmpx


Cf <utmpx.h>
Le principe reste le mme que celui pour wtmp sauf que le fichier stockant les donnes est

/var/adm/wtmpx.h

Formation permanente ARS

107

Commande last

Connexion des utilisateurs

38.5 Commande last


Syntaxe : last
La commande

[options] [utilisateur] [terminal]

last consulte le fichier /var/adm/wtmpx et affiche les enregistrements

lcran :
besancon
besancon
besancon
besancon
besancon
reboot
besancon
besancon
...

ftp
ftp
ftp
console
console
system boot
pts/9
pts/9

localhost
localhost
localhost

Sun
Sun
Sun
Sat
Sat
Sat
Tue
Tue

Aug
Aug
Aug
Aug
Aug
Aug
Aug
Aug

25
25
25
24
24
24
20
20

12:13
12:04
12:03
11:24
01:12
01:10
14:52
14:51

- 12:15 (00:01)
- 12:05 (00:01)
- 12:04 (00:00)
still logged in
- 11:24 (10:12)
- down (3+10:17)
- 14:52 (00:00)

wtmp begins Wed Feb 20 20:58

Formation permanente ARS

108

Pseudo terminaux

Chapitre 39 : Pseudo terminaux

39.1 Devices associs aux pseudo terminaux


Pseudos terminaux (virtuels ou physiques) pour : terminal type vt100, xterm, etc.
Les fichiers associs aux pseudo terminaux se trouvent dans /dev.
Par exemple

/dev/tty01 pour le terminal srie


/dev/console pour lcran principal de la machine

pour les connexions rseau, on utilise deux fichiers par connexion : un fichier matre et un fichier
esclave.
Le master pseudo terminal a pour nom /dev/pty[p-s]NN sur BSD, /dev/ptc/NN sur
System-V.
Le slave pseudo terminal a pour nom /dev/tty[p-s]NN sur BSD, /dev/pts/NN sur
System-V.
Formation permanente ARS

109

Commande tty, device /dev/tty

Pseudo terminaux

39.2 Commande tty, device /dev/tty


Pour connatre le nom du terminal courant, utiliser la commande tty :
% tty
/dev/pts/1

Un fichier spcial, /dev/tty :


% tty
/dev/pts/1
% echo oui > /dev/tty
oui

Les entres / sorties de /dev/tty sont associes votre terminal.

Formation permanente ARS

110

Pseudo terminaux

Nombre de terminaux

39.3 Nombre de terminaux


Attention : Il doit y avoir un nombre suffisant de terminaux pour accueillir les utilisateurs. Dans le cas
contraire :
% rlogin serveur.prism.uvsq.fr
rlogind: All network ports in use.
Connection closed.

Comment corriger le problme ?


La correction du problme se fait deux niveaux :
1. vrifier le nombre de terminaux configurs dans le noyau :
pseudo-device

pty

256

#Pseudo ttys - can go as high as 256

2. augmenter le nombre de fichiers terminaux dans /dev :


# cd /dev
# ./MAKEDEV
# ./MAKEDEV
# ./MAKEDEV
# ./MAKEDEV
etc.

pty1
pty2
pty3
pty4

Formation permanente ARS

111

Phase de connexion, init, getty

Pseudo terminaux

39.4 Phase de connexion, init, getty

init gre lensemble des lignes physiques sur lesquelles les utilisateurs se connectent.

Au dmarrage dinit, aprs consultation de /etc/inittab ou de /etc/ttys, il y a


lancement dun processus getty par ligne physique attache lunit centrale.
% ps -edf
USER
PID
[...]
root
362
root
363
[...]

La commande

PPID %CPU STARTED


1
1

0.0
0.0

TT

Aug 03 04
Aug 03 05

TIME COMMAND
0:00.04 /usr/sbin/getty /dev/tty04 c
0:00.04 /usr/sbin/getty /dev/tty05 c

getty configure les paramtres de la ligne (vitesse, parit, etc.) puis attend quun

utilisateur se manifeste.

Formation permanente ARS

112

Phase de connexion, init, getty

Pseudo terminaux

Lorsquun utilisateur tape son nom de login, le getty en question donne la main au programme

login :
% ps -edf
USER
PID
[...]
root
362
root
363
[...]

PPID %CPU STARTED


1
1

0.0
0.0

TT

TIME COMMAND

Aug 03 04
Aug 03 05

0:00.04 /usr/sbin/getty /dev/tty04 c


0:00.09 login besancon

login valide ou pas lutilisateur. Dans le cas favorable, une session shell est lance
(notez le caractre - en dbut du nom du shell) :
Le programme

% ps -edf
USER
[...]
root
besancon
[...]

PID

PPID %CPU STARTED

362
363

1
1

0.0
0.0

TT

Aug 03 04
Aug 03 05

TIME COMMAND
0:00.04 /usr/sbin/getty /dev/tty04 c
0:00.78 -bash (bash)

Lorsque le shell se termine, init dtecte la terminaison dun de ses fils. Il regnre alors un
nouveau processus getty.
Formation permanente ARS

113

Liste BSD des terminaux physiques : /etc/ttys

Pseudo terminaux

39.5 Liste BSD des terminaux physiques : /etc/ttys


Les lignes surveiller par init sont prcises via le fichier /etc/ttys :
console none
ttyv0
"/usr/libexec/getty
# Virtual terminals
ttyv1
"/usr/libexec/getty
ttyv2
"/usr/libexec/getty
ttyv3
"/usr/libexec/getty
# Serial terminals
ttyd0
"/usr/libexec/getty
ttyd1
"/usr/libexec/getty
# Pseudo terminals
ttyp0
none
ttyp1
none

Formation permanente ARS

Pc"

unknown off secure


cons25 on secure

Pc"
Pc"
Pc"

cons25
cons25
cons25

std.9600"
std.9600"

unknown off secure


unknown off secure

on secure
on secure
on secure

network
network

114

Liste System-V des terminaux physiques : /etc/inittab

Pseudo terminaux

39.6 Liste System-V des terminaux physiques : /etc/inittab


Les lignes surveiller par init sont prcises via le fichier /etc/inittab :
lat01:3:respawn:/usr/sbin/getty
lat02:3:respawn:/usr/sbin/getty
...
lat0e:3:respawn:/usr/sbin/getty
lat0f:3:respawn:/usr/sbin/getty

/dev/tty01
/dev/tty02

console vt100
console vt100

/dev/tty0e
/dev/tty0f

console vt100
console vt100

Formation permanente ARS

115

Pseudo terminaux

Terminaux scuriss

39.7 Terminaux scuriss


Root est-il autoris se connecter sur tout terminal ?
% rlogin ars01.formation.jussieu.fr -l root
Password:
Not on system console
Connection closed.

Pourquoi ?
Parce quun login au nom de root est anonyme et interdit en consquence.
Comment contrler laccs ?

Formation permanente ARS

116

Pseudo terminaux

Terminaux scuriss

Contrle daccs sur BSD


Au niveau de /etc/ttys ou /etc/ttytab :
...
The super-user root may only log in on those terminals
marked as "secure" in the /etc/ttytab file. Otherwise, the
super-user must log in as an ordinary user and become
super-user using su(1v).
For example, if the file contained:
console
tty00
...

"/etc/getty Console-9600"
"/etc/getty Console-9600"

sun
sun

on secure
on

the super-user could only log in directly on the console.


See ttytab(5) for a discussion of secure and other getty(8)
options used in /etc/ttytab.
...

Formation permanente ARS

Pseudo terminaux

117

Terminaux scuriss

Contrle daccs sur DIGITAL Unix


Au niveau de /etc/securettys :
#
# Note: Each entry in this file represents a device (secure device)
# from which root login is permitted. For, pseudo ttys (ptys) a
# single keyword entry "ptys" means all ptys are to be treated as being
# secure. Note that the entry is "ptys" and not prefixed by /dev
# as is customary for the other physical devices. The absence of
# this key word implies that root login will not be permitted from
# all ptys. X displays are indicated with the display name.
#
# <device name>
/dev/console
local:0
:0
ptys

Formation permanente ARS

118

Pseudo terminaux

Terminaux scuriss

Contrle daccs sur Linux


Au niveau de /etc/securetty :
## /etc/securetty is used by login(1); the file contains tty
## lines (without leading /dev/) on which root is allowed to
## login.
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
ttyp0
ttyp1

Formation permanente ARS

Pseudo terminaux

119

Terminaux scuriss

Contrle daccs sur Solaris


Au niveau de /etc/default/login :
...
# If CONSOLE is set, root can only login on that device.
# Comment this line out to allow remote login by root.
#
CONSOLE=/dev/console
...

Formation permanente ARS

120

Terminaux X, XDM

Chapitre 40 : Terminaux X, XDM

40.1 introduction sur les terminaux X


Un terminal X est un poste de travail graphique :
offrant le systme graphique X
sans systme dexploitation complexe grer et maintenir
simple configurer

En 2002, on constate :
cot lev dun terminal X ; parfois plus cher quun poste PC Windows multimdia
dsaffection des constructeurs (reste NCD)
manque de priphriques supports ; pas de floppy, pas de son, pas de USB. . .

Formation permanente ARS

121

Terminaux X, XDM

XDM : X Display Management

40.2 XDM : X Display Management


On parlera de serveur XDM pour une machine qui fait tourner lapplication xdm qui implmente XDM.
XDM est lanalogue graphique de la demande de login/password du mode texte. Visuellement, cela
se traduit par une mire daccueil.

vangogh
login:
Password:

Login:
Password:

XDM offre des possibilits :


de fournir des mires daccueil pour des terminaux X via des requtes selon le protocole XDMCP (X
Display Management Control Protocol)
de grer des serveurs X distants
Formation permanente ARS

122

Terminaux X, XDM

Requtes XDMCP

40.3 Requtes XDMCP


3 formes de rqutes :
Forme 1 : direct query
Le serveur X contacte un serveur XDM nomment.
Forme 2 : broadcast query
Une requte est envoye sur le rseau en mode broadcast et une mire daccueil est offerte par le
premier serveur XDM qui peut rpondre.
Forme 3 : indirect query
Le serveur X contacte une machine et lui demande la liste des serveurs XDM quelle connait. Le
serveur X se voit proposer de choisir un hte XDM parmi cette liste.

Formation permanente ARS

123

Terminaux X, XDM

Gestion directe de serveurs X

40.4 Gestion directe de serveurs X


XDM envoit de lui mme des mires daccueil une liste de serveurs X.

Formation permanente ARS

124

Fichier de configuration xdm-config

Terminaux X, XDM

40.5 Fichier de configuration xdm-config


Traditionnellement dans lun de ces rpertoires :

/etc/X11/xdm
rpertoire /usr/X11R6/lib/X11/xdm
rpertoire /usr/openwin/lib/X11/xdm
rpertoire

Ce fichier dfinit les noms et les rpertoires des autres fichiers de configuration de xdm ainsi que
quelques options de configuration :
Par exemple :
DisplayManager.errorLogFile: /var/log/xdm-errors
DisplayManager.pidFile: /var/run/xdm-pid
DisplayManager.keyFile: /usr/X11R6/lib/X11/xdm/xdm-keys
DisplayManager.servers: /usr/X11R6/lib/X11/xdm/Xservers
DisplayManager.accessFile: /usr/X11R6/lib/X11/xdm/Xaccess
...
! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort:
0

Formation permanente ARS

125

Fichier de configuration Xaccess

Terminaux X, XDM

40.6 Fichier de configuration Xaccess


Ce fichier contient une liste de machines autorises se connecter XDM.
Par exemple :
## Direct queries
*
## Indirect queries
*
CHOOSER BROADCAST

La ligne avec ltoile

* indique que toute machine est autorise faire une requte de type query

direct.

La seconde ligne indique quune slection de htes XDM sera affich qui fera une requte de
type indirect query et que la liste des htes XDM sera obtenue par broadcast.

Formation permanente ARS

126

Fichier de configuration Xservers

Terminaux X, XDM

40.7 Fichier de configuration Xservers


Ce fichier contient la liste des serveurs X grs directement par XDM.
Par exemple :
# Console de la machine
:0 local /usr/X11R6/bin/X
# Autres terminaux
riri:0 foreign
fifi:0 foreign
loulou:0 foreign

Formation permanente ARS

127

Fichier de configuration Xresources

Terminaux X, XDM

40.8 Fichier de configuration Xresources


Ce fichier contient les ressources pour personnaliser lapparence de la mire daccueil.
xlogin*greeting: Welcome to CLIENTHOST
xlogin*namePrompt: \040\040\040\040\040\040\040Login:
xlogin*fail: Login incorrect
#if WIDTH > 800
xlogin*greetFont: -adobe-helvetica-bold-o-normal--24-240-75-75-p-138-iso8859-1
xlogin*font: -adobe-helvetica-medium-r-normal--18-180-75-75-p-103-iso8859-1
xlogin*promptFont: -adobe-helvetica-bold-r-normal--18-180-75-75-p-103-iso8859-1
xlogin*failFont: -adobe-helvetica-bold-r-normal--18-180-75-75-p-103-iso8859-1
#else
xlogin*greetFont: -adobe-helvetica-bold-o-normal--17-120-100-100-p-92-iso8859-1
xlogin*font: -adobe-helvetica-medium-r-normal--12-120-75-75-p-69-iso8859-1
xlogin*promptFont: -adobe-helvetica-bold-r-normal--12-120-75-75-p-69-iso8859-1
xlogin*failFont: -adobe-helvetica-bold-o-normal--14-140-75-75-p-82-iso8859-1
#endif
#ifdef COLOR
xlogin*borderWidth: 1
xlogin*shdColor: grey30
...

Formation permanente ARS

128

Terminaux X, XDM

Application CHOOSER

40.9 Application CHOOSER


Le slecteur de htes XDM sappelle le chooser.

Formation permanente ARS

Terminaux X, XDM

129

Application CHOOSER

La liste des htes peut tre obtenue par :


broadcast
Syntaxe au niveau du fichier Xaccess :
*
CHOOSER BROADCAST
liste explicite
Syntaxe au niveau du fichier Xaccess :
%hostlist cerise poire pomme
*
CHOOSER %hostlist

Formation permanente ARS

130

Terminaux X, XDM

Ressources X pour XDM

40.10 Ressources X pour XDM


Il y a diverses ressources de personnalisation de xdm :
apparence de la mire
apparence du chooser
mais aussi personnalisation de la configuration de XDM selon le serveur X gr :
display local |verb ! :0.0 !dsign par le mot clef _0
autre display host:0.0 dsign par le mot clef host_0

Extrait dun fichier xdm-config :


...
DisplayManager._0.authorize:
! The following three resources
DisplayManager._0.setup:
DisplayManager._0.startup:
DisplayManager._0.reset:
...

true
set up display :0 as the console.
/usr/X11R6/lib/X11/xdm/Xsetup_0
/usr/X11R6/lib/X11/xdm/GiveConsole
/usr/X11R6/lib/X11/xdm/TakeConsole

Formation permanente ARS

131

Terminaux X, XDM

KDM : KDE Display Manager

40.11 KDM : KDE Display Manager

Fichier de configuration : /usr/local/share/config/kdm/kdmrc


Utilitaire de configuration : /usr/local/bin/kdm_config
Formation permanente ARS

132

Terminaux X, XDM

GDM : Gnome Display Manager

40.12 GDM : Gnome Display Manager

/usr/X11R6/etc/gdm/gdm.conf
Utilitaire de configuration : /usr/X11R6/bin/gdmconfig
Fichier de configuration

Formation permanente ARS

133

Terminaux X, XDM

Session X de lutilisateur

40.13 Session X de lutilisateur


xdm cre un shell sur le serveur de calcul qui configure lenvironnement graphique de lutilisateur via
le fichier "$HOME/.xsession".

 la dure de vie de la session sous X est celle du script $HOME/.xsession

Formation permanente ARS

134

Terminaux X, XDM

Session X de lutilisateur

En gnral :

#!/bin/sh
appliX1 &
appliX2 &
...
appliXn &
appliX
Le dernier client X nest pas lanc en tche de fond. En gnral, le dernier client est un window
manager.

Cf ftp://ftp.lip6.fr/pub/doc/faqs/x-faq/speedups.gz

Formation permanente ARS

135

Terminaux X, XDM

Mode Failsafe

40.14 Mode Failsafe


Sil y a des erreurs, les messages de celles-ci sont crits dans le fichier

$HOME/.xsession-errors.
En cas derreur grave dans $HOME/.xsession empchant le dmarrage de la session X,
utiliser le mode FailSafe :
1. entrer le nom de login
2. valider par la tocuhe Retour
3. entrer le mot de passe
4. valider par la touche F1 et non pas par la touche Retour
Il apparait alors un simple xterm sans window manager.

Formation permanente ARS

136

Terminaux lgers

Chapitre 41 : Terminaux lgers

41.1 Problmatique
Un vrai terminal X est maintenant trop cher.
Un vrai terminal X est maintenant trop limitatif : pas de multimdia
Solution : le client lger

Appelation un peu abusive. Ni un PC. Ni un terminal X :


succdan darchitecture de PC x86
faible consommation lectrique

 pas de ventilateur  silencieux

mmoire flash (pas de disque dur local)


systme dexploitation de type LINUX minimaliste ou Windows CE  support des priphriques
rcents (USB, wake-on-lan, . . .)

Formation permanente ARS

137

Terminaux lgers

RDP

41.2 RDP
RDP  Remote Desktop Protocol
Actuellement version 5.1
Dvelopp par Microsoft.

Caractristiques : 64000 channels possibles, redirection des ports parallles et du port IDE, cliboad
manager, virtual channel

Se reporter :
http://www.microsoft.com/windows2000/techinfo/howitworks/terminal/rdpfandp.asp
http://www.microsoft.com/windowsxp/remotedesktop/faq.asp
http://www.microsoft.com/windowsxp/pro/using/howto/gomobile/remotedesktop/
Formation permanente ARS

138

Terminaux lgers

RDP

Formation permanente ARS

139

Terminaux lgers

RDP

A noter le client RDP Linux RDESKTOP, http://www.rdesktop.org/

A completer...

Formation permanente ARS

140

Terminaux lgers

ICA

41.3 ICA
ICA  Independant Client Architecture
Actuellement version 6
Dvelopp par la socit CITRIX.
Dialogue avec le logiciel METAFRAME de Citrix
Load balancing
Accs modem optimis
Licences ICA ncessaires par client ou par poste
Se reporter : http://www.citrix.com/

Mon avis :
cela fonctionne bien quand cela fonctionne
il existe des clients ICA pour Unix mais ce nest pas le scenario que cherche pousser CITRIX

 support logiciel minable pour la clientle Unix


Formation permanente ARS

141

Terminaux lgers

ICA

A completer...
> > > > screendump client unix < < < <
> > > > screendump client web < < < <

Formation permanente ARS

142

Terminaux lgers

VNC

41.4 VNC

http://www.uk.research.att.com/vnc/
VNC  Virtual Network Computing
VNC est un logiciel permettant de viusaliser le bureau de nimporte quel ordinateur Macintosh,
Windows, Unix depuis Internet (en loccurence depuis Macintosh, Windows, Unix, browser avec java).
Le logiciel se compose :
une partie de visualisation dite vncviewer
une partie serveur
Le logiciel est utilisable mme avec une liaison tlphonique avec un modem 38400 bauds (test).
ATTENTION dans le cas Windows : VNC nest pas une extension la Terminal Server. VNC est un
partage, une prise en main de lcran distant du PC.

Formation permanente ARS

Terminaux lgers

143

VNC

Prenons le cas dun vncviewer Unix qui se connectera un vncserver Windows.


La connexion stablit aprs demande du serveur contacter :

et la demande du mot de passe permettant de piloter le bureau distant du serveur :

et aprs quelques lignes de texte de renseignements sur le serveur VNC :


% vncviewer
VNC server supports protocol version 3.3 (viewer 3.3)
VNC authentication succeeded
Desktop name "w2k"
Connected to VNC server, using protocol version 3.3
VNC server default format:
32 bits per pixel.
Least significant byte first in each pixel.
True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
Using default colormap which is TrueColor. Pixel format:
32 bits per pixel.
Most significant byte first in each pixel.
True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0

Formation permanente ARS

144

Terminaux lgers

VNC

on obtient bien le bureau distant directement manipulable depuis son propre bureau :

Formation permanente ARS

Terminaux lgers

145

VNC

Exemple de bureau Unix visualis dans Internet Explorer de Windows :

Formation permanente ARS

146

Terminaux lgers

VNC

Exemple de bureau Unix visualis dans vncviewer pour Windows :

Formation permanente ARS

Terminaux lgers

147

VNC

Exemple de bureau Unix visualis dans Internet Explorer de Macintosh :

Formation permanente ARS

148

Terminaux lgers

VNC

Exemple de bureau Windows visualis dans Internet Explorer de Macintosh :

Formation permanente ARS

Terminaux lgers

149

VNC

Exemple de bureau Windows visualis dans Netscape dUnix :

Formation permanente ARS

150

Terminaux lgers

VNC

Exemple de bureau Windows visualis dans vncviewer dUnix :

Formation permanente ARS

Terminaux lgers

151

VNC

A noter une ralisation matrielle et commerciale avec VNC : les terminaux AXEL AX3000 Model 65
(cf http://www.axel.com produit franais !)

Formation permanente ARS

152

Terminaux lgers

VNC

Prenons le cas du serveur VNC pour Windows. Il sagit dune application Windows qui sinstalle
classiquement :

Formation permanente ARS

Terminaux lgers

153

VNC

Elle ncessite un rglage, en loccurence mettre un mot de passe de faon contrler qu peut capter
distance le bureau :

Formation permanente ARS

154

Terminaux lgers

VNC

Une fois paramtre, une petite icne apparait dans le coin droite de Windows indiquant que le
service est fonctionnel :

Quand un vncviewer est connect au bureau Windows, la petite icne change de couleur et passe en
noir de faon prvenir lutilisateur quil est sur coute :

On peut encapsuler le protocole VNC dans un tunnel de chiffrement bien sr. Cf la documentation.

Formation permanente ARS

155

Terminaux lgers

WMWARE

41.5 WMWARE

http://www.vmware.com/
Version 3.1.1
VMWARE ne tourne que sur plateforme base de processeur Intel ou compatible.
Ce logiciel offre sur la machine hte, des machines virtuelles dans lesquelles peuvent tourner des
OS comme Windows, Linux, FreeBSD.
Il sagit donc de machine virtuelle et non pas de prise en main comme avec VNC.

Formation permanente ARS

156

Terminaux lgers

WMWARE

A completer...
> > > > screendump Philippe Weill < < < <

Formation permanente ARS

157

Terminaux lgers

SUNRAY

41.6 SUNRAY
Cest un poste de travail comme les autres :
Pas de disque dur
Pas dapplications locales
Pas dalimentation externe
Pas de configuration
Pas de systme dexploitation
Pas de barrette mmoire
Pas de ventilateur
Pas de paramtrage particulier
Il est 10 fois plus lger quun PC et 12 fois moins volumineux
Il peut mme sintgrer dans un cran cathodique 17 pouces ou un cran plat de 15 pouces...

Formation permanente ARS

158

Terminaux lgers

SUNRAY

Avantages :
Instantan, constant et simple
Gestion centralise
Jamais besoin de mise jour
Silencieux
16 millions de couleurs (24 bits)
Pas de setup
Donc, pas de d-setup
Pas de modifications de vos applications
AUCUN tranfert de fichier au boot
Mise en production la plus rapide du monde !

Formation permanente ARS

Terminaux lgers

159

SUNRAY

Caractristiques hardware :
CPU Sparc
1280 x 1024 @ 76 Hz
frame buffer 24 bits
10/100Mb Ethernet
Accs a Solaris , X11, Java , ICA
fonctionnalits multimdia
Lecteur de carte puce
E/S audio qualit CD
Entre vido NTSC/PAL
Support USB ( 4 ports ) mais limit en
pratique. . .

Formation permanente ARS

160

Terminaux lgers

SUNRAY

Architecture rseau :

Formation permanente ARS

Terminaux lgers

161

SUNRAY

Architecture logicielle :

Formation permanente ARS

162

Terminaux lgers

SUNRAY

Architecture logicielle (2) :

Formation permanente ARS

Terminaux lgers

163

SUNRAY

Cohabitation avec Windows possible :

Formation permanente ARS

164

Das könnte Ihnen auch gefallen