Pour répondre à cette question, nous pouvons considérer deux cas :
Dans le premier cas, vous n'aurez 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 démarrage de votre machine
dans le fichier de démarrage (/etc/rc.local, /etc/init.d/nis, /etc/rc.d/init.d/ypbind
).
Dès que ypbind
fonctionne, votre système devient 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
).
La section 10 ( 10 Configurer un serveur NIS ) 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 5.1 est géré.
Il existe également un autre serveur NIS en libre distribution, appelé yps
,
écrit par Tobias Reber en Allemagne, et 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 partagée /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, pour plus de sûreté,
é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.kernel.org /pub/linux/utils/net/NIS yp-tools-2.0.tar.gz
ftp.kernel.org /pub/linux/utils/net/NIS ypbind-mt-1.2.tar.gz
ftp.kernel.org /pub/linux/utils/net/NIS ypbind-3.3.tar.gz
sunsite.unc.edu /pub/Linux/system/Network/admin yp-clients-2.2.tar.gz
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
Une fois que vous aurez récupéré ces programmes, suivez les instructions
qui sont livrées avec. 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
nécessitent yp-tools 1.4.1
. La nouvelle version
yp-tools 2.0
fonctionnera avec toutes les libc Linux. Vous ne devriez pas utiliser les
libc 5.4.21 - 5.4.35
car elles présentent de nombreux défauts. Utilisez la
libc 5.4.36
ou une version supérieure, sinon, la plupart des programmes de YP
ne fonctionneront pas. ypbind 3.3
fonctionnera également 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. C'est faux : ypwhich
et ypcat
en ont
besoin.
Vous devez réaliser cette opération en tant que super-utilisateur (i.e. "root"), bien sûr.
Les autres binaires (ypwhich, ypcat, yppoll, ypmatch
) doivent être
placés dans un répertoire accessible à tous les utilisateurs,
normalement c'est le répertoire /usr/bin
qui est utilisé.
Le programme ypbind a besoin d'un fichier de configuration
/etc/yp.conf
. Vous pouvez y indiquer, en dur, 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 de /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 A
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 déjà.
/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 capable d'utiliser les programmes clients tels
que ypcat
, etc. Par exemple, ypcat passwd
vous
donne la liste des mots de passe (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é.
Pour vérifier que le nom de domaine est correctement configurer, utilisez le
programme /bin/ypdomainname
, fourni avec yp-tools 2.0. Il utilise la
fonction yp_get_default_domain, qui est plus restrictive. Elle n'autorise pas,
par exemple, le nom de domaine "(none)", qui est celui par défaut avec Linux
et qui crée de nombreux problèmes.
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. Relancez votre machine et observez 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, tout en ayant 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 (ou les) serveur(s) adéquat(s), 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.
Les sources de NYS sont fournies avec les sources de libc5. Lorsque vous lancez la configuration pour la première fois, répondez "NO" à la question "Values correct" (NDT: en français, "Est-ce que les valeurs sont correctes ?"), puis répondez "YES" à la question "Build a NYS libc from nys" (NDT: en français, "Construire une libc NYS à partir de nys ?").
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, de la même manière que
le fichier /etc/host.conf
détermine la façon dont les recherches de
noms de machines se font. 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 renvoyée. Ce fichier doit être accessible en
lecture pour tous les utilisateurs !
Voici un bon exemple de fichier /etc/nsswitch.conf pour NIS:
#
# /etc/nsswitch.conf
#
# Un exemple de configuration de NSS (Name Service Switch). 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 donne
# 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 n'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.