Il faut installer le même paquet Debian sur le serveur et le client. C'est en éditant le fichier de configuration du service que l'on attribue le rôle client ou serveur.
Lors de l'installation du paquet, le rôle attribué par défaut est client. Pour installer un serveur, il faut laisser l'installation se poursuivre jusqu'à expiration du délai d'attente de recherche du serveur ... qui n'est pas encore configuré. Voici une capture d'écran :
# apt-get install nis Lecture des listes de paquets... Fait Construction de l'arbre des dépendances... Fait Les NOUVEAUX paquets suivants seront installés : nis 0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour. <snipped/> Préconfiguration des paquets ... Sélection du paquet nis précédemment désélectionné. (Lecture de la base de données... 144540 fichiers et répertoires déjà installés.) Dépaquetage de nis (à partir de .../archives/nis_3.13-2_i386.deb) ... Paramétrage de nis (3.13-2) ... Setting NIS domainname to: nis.labStarting NIS services: ypbind [binding to YP server .......... backgrounded]
|
Lors de l'installation du paquet, on attribue un nom de domaine
NIS. Dans cette exemple, le domaine est :
|
On attribue le rôle en éditant le fichier
/etc/default/nis :
rubis:~# head -10 /etc/default/nis # # /etc/defaults/nis Configuration settings for the NIS daemons. # # Are we a NIS server and if so what kind (values: false, slave, master) NISSERVER=master# Are we a NIS client (i.e. start ypbind?) NISCLIENT=true
|
Par défaut, la valeur est |
On désigne manuellement le serveur en éditant le fichier
/etc/yp.conf :
rubis:~# cat /etc/yp.conf <snipped/> # # IMPORTANT: For the "ypserver", use IP addresses, or make sure that # the host is in /etc/hosts. This file is only interpreted # once, and if DNS isn't reachable yet the ypserver cannot # be resolved and ypbind won't ever bind to the server. # ypserver ypserver.network.com ypserver 127.0.0.1
On peut ensuite relancer le service :
rubis:~# /etc/init.d/nis stop rubis:~# /etc/init.d/nis start Starting NIS services: ypserv yppasswdd ypxfrd ypbind
Contrôle de la liste des services disponibles à partir du gestionnaire de requêtes RPC :
rubis:~# rpcinfo -p
program no_version protocole no_port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
391002 2 tcp 903 sgi_fam
100024 1 udp 786 status
100024 1 tcp 789 status
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 udp 1041 nlockmgr
100021 3 udp 1041 nlockmgr
100021 4 udp 1041 nlockmgr
100021 1 tcp 1029 nlockmgr
100021 3 tcp 1029 nlockmgr
100021 4 tcp 1029 nlockmgr
100005 1 udp 710 mountd
100005 1 tcp 713 mountd
100005 2 udp 710 mountd
100005 2 tcp 713 mountd
100005 3 udp 710 mountd
100005 3 tcp 713 mountd
100004 2 udp 628 ypserv
100004 1 udp 628 ypserv
100004 2 tcp 634 ypserv
100004 1 tcp 634 ypserv
100009 1 udp 630 yppasswdd
600100069 1 udp 633 fypxfrd
600100069 1 tcp 635 fypxfrd
100007 2 udp 641 ypbind
100007 1 udp 641 ypbind
100007 2 tcp 644 ypbind
100007 1 tcp 644 ypbind
La liste des hôtes du domaine NIS est l'exemple le
plus immédiat d'information, autre que les comptes utilisateurs, publiée
par le service. Il s'agit donc de compléter le fichier
/etc/hosts sur le serveur NIS pour
qu'il contienne les adresses IP des hôtes de
l'architecture type.
rubis:~# cat /etc/hosts 127.0.0.1 localhost 192.168.1.4 rubis 192.168.1.7 saphir
Une fois le serveur en place, il faut créer les bases de données
distribuées par le service NIS. Ces bases étant stockées
dans le répertoire /var/yp/, c'est à
partir de ce répertoire que toutes les opérations suivantes doivent être
effectuées.
Pour commencer, on édite le fichier Makefile qui
contient l'ensemble des directives de manipulation des bases. On
s'intéresse plus particulièrement à 2 sections du fichier.
On fixe arbitrairement la valeur minimum des
uid et gid à 2000 de
façon à éviter tout «mélange» avec la base de données des comptes
utilisateur locaux du serveur NIS.
# We do not put password entries with lower UIDs (the root and system # entries) in the NIS password database, for security. MINUID is the # lowest uid that will be included in the password maps. If you # create shadow maps, the UserID for a shadow entry is taken from # the passwd file. If no entry is found, this shadow entry is # ignored. # MINGID is the lowest gid that will be included in the group maps. MINUID=2000 MINGID=2000
auto.master,
auto.home
On complète la liste des bases ou «cartes» gérées par le service NIS en y ajoutant les fichiers de configuration de l'automontage NFS. De cette façon, on évite d'avoir à configurer le service d'automontage sur tous les postes clients.
# If you don't want some of these maps built, feel free to comment # them out from this list. ALL = passwd group hosts rpc services netid protocols netgrp ALL += auto.master auto.home
Comme la configuration de l'automontage n'est pas encore traitée, on se contente de créer des fichiers vides de façon à ne pas bloquer le fonctionnement du service NIS.
rubis:/var/yp# touch /etc/auto.master rubis:/var/yp# touch /etc/auto.home
Une fois le fichier Makefile prêt, on lance la
création des bases avec la commande ypinit.
rubis:/var/yp# /usr/lib/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers. rubis is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a <control D>.
next host to add: rubis
next host to add:
The current list of NIS servers looks like this:
rubis
Is this correct? [y/n: y]
We need a few minutes to build the databases...
Building /var/yp/nis.lab/ypservers...
Running /var/yp/Makefile...
make[1]: Entering directory `/var/yp/nis.lab'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating netgroup...
Updating netgroup.byhost...
Updating netgroup.byuser...
Updating auto.master...
Updating auto.home...
Updating shadow.byname...
make[1]: Leaving directory `/var/yp/nis.lab'
rubis has been set up as a NIS master server.
Now you can run ypinit -s rubis on all slave server.
Pour les tests sur les services NIS et
NFS on utilise un compte utilisateur spécifique baptisé
etu-nis.
|
On désigne un nouveau répertoire racine pour les comptes utilisateurs distribués par le service NIS. Ce répertoire sera utilisé par le service d'automontage NFS. |
|
|
Conformément à la règle adoptée lors de la création des bases
NIS, on doit fixer une valeur
d' |
rubis:/var/yp# mkdir /home/nis rubis:/var/yp# adduser --home /home/nis/etu-nis--uid 2000
etu-nis Ajout de l'utilisateur etu-nis... make: Entering directory `/var/yp' make[1]: Entering directory `/var/yp/nis.lab' Updating netid.byname... make[1]: Leaving directory `/var/yp/nis.lab' make: Leaving directory `/var/yp' Adding new group `etu-nis' (2000). make: Entering directory `/var/yp' make[1]: Entering directory `/var/yp/nis.lab' Updating group.byname... Updating group.bygid... Updating netid.byname... make[1]: Leaving directory `/var/yp/nis.lab' make: Leaving directory `/var/yp' Adding new user `etu-nis' (2000) with group `etu-nis'. make: Entering directory `/var/yp' make[1]: Entering directory `/var/yp/nis.lab' Updating passwd.byname... Updating passwd.byuid... Updating netid.byname... Updating shadow.byname... make[1]: Leaving directory `/var/yp/nis.lab' make: Leaving directory `/var/yp' Création du répertoire personnel /home/nis/etu-nis. Copie des fichiers depuis /etc/skel Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Modification des informations relatives à l'utilisateur etu-nis Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée Nom complet []: Etudiant NIS No de bureau []: Téléphone professionnel []: Téléphone personnel []: Autre []: Ces informations sont-elles correctes ? [o/N] o
D'une façon générale, à chaque modification d'un objet de la base de
données du service NIS, il faut relancer la scrutation
des directives listées dans le Makefile.
rubis:/var/yp# make make[1]: Entering directory `/var/yp/nis.lab' Updating passwd.byname... Updating passwd.byuid... Updating netid.byname... Updating shadow.byname... make[1]: Leaving directory `/var/yp/nis.lab'
Côté client, il faut aussi installer le paquet Debian
nis et reprendre le nom de domaine choisi lors de
la configuration du serveur.
saphir:~# apt-get install nis saphir:~# nisdomainname nis.lab saphir:~# ypwhich rubis
Une fois le démon ypbind
lancé, on effectue un test d'accès à une base distribuée via
NIS :
saphir:~# ypcat hosts 127.0.0.1 localhost 192.168.1.7 saphir 192.168.1.4 rubis
On suit ensuite les indications données dans les deux guides de
configuration NIS : section Setting Up
the NIS Client du guide The Linux NIS(YP)/NYS/NIS+ HOWTO et|ou section
HOW TO SETUP A LOCAL NIS CLIENT de la Documentation du paquet Debian nis.
On complète la configuration pour que les utilisateurs NIS puissent se connecter sur le client :
saphir:~# echo "+::::::" >>/etc/passwd saphir:~# echo "+::::::::" >>/etc/shadow saphir:~# echo "+:::" >>/etc/group
Pour tester l'authentification de l'utilisateur test etu-nis, soit on utilise la commande
su etu-nis, soit on utilise une console. Voici ce
que l'on obtient sur la console n° 2 :
Debian GNU/Linux 3.1 saphir tty2 saphir login: etu-nis Password: Linux saphir 2.6.12-rc3 #3 Sun May 1 17:29:27 CEST 2005 i686 GNU/Linux The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. No directory, logging in with HOME=/etu-nis@saphir:/$
Vous êtes ici :