Pour répondre à cette question, nous pouvons considérer deux cas :
Dans le premier cas, vous n'allez avoir besoin que des programmes clients
(ypbind, ypwhich, ypcat, yppoll, ypmatch
). Le programme le plus
important est ypbind
. Ce démon doit toujours être lancé,
c'est-à-dire qu'il doit toujours apparaître dans la liste des processus.
Comme c'est un démon, il doit être lancé au lancement de votre machine
dans le fichier /etc/rc.local
. Dès que ypbind
fonctionne,
votre système est alors un client NIS.
Dans le second cas, vous n'avez pas de serveur NIS, donc vous aurez
également besoin d'un programme serveur NIS (généralement ypserv
).
Le huitième paragraphe décrit comment configurer un serveur NIS sur votre
machine Linux en utilisant la version ypserv
implémentée par
Peter Eriksson et Thorsten Kukuk. On peut remarquer
qu'à partir de la version 0.14 de cette implémentation, le concept
de maître-esclave dont nous avons parlé dans la section 4.1 est traité.
Il existe également un
autre serveur NIS en libre distribution, appelé yps
, écrit par
Tobias Reber en Allemagne qui gère le concept de maître/esclave mais qui
a d'autres limitations et qui n'est plus maintenu.
La bibliothèque /usr/lib/libc.a
(version 4.4.2 et
supérieure) ou la bibliothèque dynamique /lib/libc.so.x
contient tous les appels systèmes correspondants
pour compiler sans problème les programmes clients et serveurs NIS.
Pour la glibc 2.x, vous aurez également besoin de /lib/libnsl.so.1.
Certaines personnes ont signalé que NIS ne fonctionne qu'avec
/usr/lib/libc.a
version 4.5.21 et supérieure donc évitez
d'utiliser des bibliothèques plus anciennes.
Les clients NIS peuvent être récupérés sur les sites suivants :
Site Repertoire Nom du fichier
ftp.uni-paderborn.de /linux/local/yp yp-clients-2.2.tar.gz
ftp.uni-paderborn.de /linux/local/yp ypbind-3.3.tar.gz
wauug.erols.com /pub/net/nis yp-tools-1.2.tar.gz
wauug.erols.com /pub/net/nis ypbind-3.3.tar.gz
ftp.lysator.liu.se /pub/NYS/clients yp-tools-1.2.tar.gz
sunsite.unc.edu /pub/Linux/system/Network/admin yp-clients-2.2.tar.gz
Une fois que vous récupéré ces programmes, suivez les instructions livrées. yp-clients 2.2 doit être utilisé avec les bibliothèques libc4 et libc5 jusqu'à la version 5.4.20. Les libc 5.4.21 et glibc 2.x ont besoin de yp-tools 1.2. ypbind 3.3 fonctionnera avec toutes les bibliothèques. Vous ne devriez jamais utiliser la version ypbind qui est fournie dans yp-clients 2.2.
Nous supposons que vous avez compilé correctement les programmes et que
vous êtes prêt à les installer. L'endroit où installer le démon
ypbind
est le répertoire /usr/sbin
. Certains
peuvent vous dire que vous n'avez pas besoin de ypbind
sur
un système qui utilise NYS. Ceci est faux : ypwhich et ypcat en ont
besoin.
Vous devez réaliser cette opération en tant que super-utilisateur bien sûr.
Les autres
binaires (ypwhich, ypcat, yppoll, ypmatch
) doivent être
placés dans un répertoire accessible à tous les utilisateurs,
normalement dans le répertoire /usr/bin
.
Le programme ypbind a besoin d'un fichier de configuration
etc/yp.conf
. Vous pouvez y indiquer le nom du serveur NIS.
Pour plus d'informations, consultez la page de manuel de
ypbind(8). Vous aurez également besoin de ce ficher pour NYS.
Un court exemple :
ypserver voyager
ypserver ds9
Si le système est capable de résoudre les noms de machine sans NIS, vous pouvez utiliser le nom de la machine. Dans le cas contraire, utilisez l'adresse IP.
Il est souhaitable de tester ypbind avant de l'inclure dans
les fichiers /etc/rc.d
. Pour tester ypbind
faites ceci :
/bin/domainname-yp nis.domain
où nis.domain
doit être une chaîne, qui n'a normalement rien à
voir avec le nom de votre machine ! La raison est que cela rend plus
difficile le travail des pirates pour trouver les mots de passe de
la base de données du serveurs NIS. Si vous ne connaissez pas le nom
du domaine de votre réseau, contactez votre administrateur système.
/usr/sbin/rpc.portmap
s'il ne tourne pas
/var/yp
s'il n'existe pas.
/usr/sbin/ypbind
rpcinfo -p localhost
pour
vérifier qu'ypbind
est capable d'enregistrer ses services
dans portmapper. La commande rpcinfo
devrait produire
un message de ce style :
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100007 2 udp 637 ypbind
100007 2 tcp 639 ypbind
300019 1 udp 660
rpcinfo -u localhost ypbind
.
Cette commande devrait alors produire :
program 100007 version 2 ready and waiting
Vous devriez alors être capables d'utiliser les programmes clients tels
que ypcat
, etc. Par exemple, ypcat passwd
vous
donne la liste des mots de passes (chiffrés !) de la base de données
NIS.
IMPORTANT : si vous avez évité la procédure de test, vérifiez que vous avez positionné le nom de votre domaine, et créé le répertoire :
/var/yp
Ce répertoire DOIT exister pour qu'ypbind
soit correctement lancé.
Si le test a fonctionné, vous pouvez alors modifier les fichiers
/etc/rc.d
sur votre système pour qu'ypbind
soit
lancé lors de l'amorçage de la machine et pour que votre machine se
comporte comme un client NIS. Assurez-vous que le nom de domaine soit
configuré lors de l'amorçage.
Normalement, tout est prêt. Réamorcez votre machine et scrutez les messages pour voir si ypbind est lancé.
Pour la recherche de noms de machines, vous devez ajouter "nis"
dans la ligne "host" du fichier /etc/host.conf
. Lisez la
page de manuel "resolv+.8" pour plus de détails.
Ajoutez ensuite la ligne suivante dans le fichier /etc/passwd
de vos machines clientes :
+::::::
Vous pouvez également utiliser les caractères + et - pour
inclure/exclure ou modifier certains utilisateurs. Si vous souhaitez
exclure l'utilisateur guest, ajoutez -guest
à votre fichier /etc/passwd
. Si vous souhaitez utiliser
un interpréteur de commandes différent (par exemple ksh)
pour l'utilisateur "linux", ajoutez la ligne +linux::::::/bin/ksh
.
Les champs que vous ne souhaitez pas modifier doivent rester vides.
Vous pouvez également utiliser les Netgroups pour gérer les utilisateurs.
Par exemple, pour n'utiliser que les login miquels, dth et ed, ainsi que tous les membres du netgroup sysadmin, mais pour avoir quand même accès aux comptes des autres utilisateurs :
+miquels:::::::
+ed:::::::
+dth:::::::
+@sysadmins:::::::
-ftp
+:*::::::/etc/NoShell
Remarquez qu'avec Linux, vous pouvez également surcharger le champ mot de passe, comme nous l'avons fait dans cet exemple. Nous avons également supprimé le login "ftp" : cet utilisateur n'est plus connu sur la machine et le ftp anonyme ne fonctionnera pas.
Le netgroup peut être défini de la sorte :
sysadmins (-,software,) (-,kukuk,)
IMPORTANT : la fonctionnalité de netgroup n'est implémentée qu'à partir de la libc version 4.5.26. Mais si vous possédez une libc plus ancienne que la 4.5.26, tout utilisateur dans la base de donnée des mots de passe peut accéder à la machine linux si vous lancez ypbind.
Il vous suffit d'avoir le fichier de configuration NIS (/etc/yp.conf) qui pointe sur le serveur adéquat, ainsi qu'un fichier /etc/nsswitch.conf correctement configuré.
Vous devriez également installer ypbind. Il n'est pas nécessaire pour la libc, mais les outils NIS(YP) en ont besoin.
Si vous souhaitez utiliser les fonctionnalités d'inclusion/exclusion d'utilisateurs (+/-guest/+@admins), vous devez utiliser "passwd: compat" et "group: compat". Notez qu'il n'existe pas de "shadow: compat" ! Vous devez utiliser "shadow: files nis" dans ce dernier cas.
La glibc utilise la version "NIS traditionnelle", donc vous devrez lancer ypbind. Le fichier /etc/nsswitch.conf doit également être correctement configuré. Si vous utilisez le mode compat pour les tables passwd, shadow ou group, vous devez ajouter le caractère "+" à la fin de ces fichiers, et vous pourrez alors utiliser les fonctionnalités d'inclusion/d'exclusion d'utilisateurs. La configuration est exactement la même que sous Solaris 2.x.
Le fichier de configuration /etc/nsswitch.conf détermine l'ordre dans lequel sont effectuées les recherches de certaines informations, en fonction des données et des services. Par exemple, la ligne
hosts: files nis dns
indique que la recherche d'un nom de machine sera d'abord effectuée dans le fichier local /etc/hosts, puis dans la table NIS et enfin en utilisant le DNS (/etc/resolv.conf et named). Si aucune machine ne correspond, alors une erreur est retournée.
Voici un exemple correct de fichier /etc/nsswitch.conf pour NIS:
#
# /etc/nsswitch.conf
#
# Un exemple de configuration. Ce fichier doit etre trie en mettant
# en tete les services les plus utilises.
#
# L'entree '[NOTFOUND=return]' signifie que la recherche d'une entree
# doit s'arreter si la recherche dans l'entree precedente n'a rien donnee
# Notez que si la recherche echoue pour tout autre raison
# (par exemple, le serveur NIS ne repond pas), alors la recherche continue
# avec l'entree suivante.
#
# Les entrees connues sont :
#
# nisplus NIS+ (NIS version 3)
# nis NIS (NIS version 2), connu comme YP
# dns DNS (Domain Name Service)
# files Fichiers locaux
# db Bases de donnees /var/db
# [NOTFOUND=return] Arret de la recherche si l'on a rien trouve
#
passwd: compat
group: compat
shadow: compat
passwd_compat: nis
group_compat: nis
shadow_compat: nis
hosts: nis files dns
services: nis [NOTFOUND=return] files
networks: nis [NOTFOUND=return] files
protocols: nis [NOTFOUND=return] files
rpc: nis [NOTFOUND=return] files
ethers: nis [NOTFOUND=return] files
netmasks: nis [NOTFOUND=return] files
netgroup: nis
bootparams: nis [NOTFOUND=return] files
publickey: nis [NOTFOUND=return] files
automount: files
aliases: nis [NOTFOUND=return] files
Les entrées passwd_compat, group_compat et shadow_compat ne sont
gérées qu'avec la glibc 2.x. S'il n'y a pas d'entrée shadow
dans /etc/nsswitch.conf, la glibc utilisera l'entrée passwd pour effectuer
ses recherches. Il existe certaines entrées supplémentaires
avec la glibc comme hesoid
. Pour plus d'informations, consultez la
documentation de la glibc.
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre