Pour lancer n'importe lequel des programmes mentionnés ci-dessous, vous
aurez besoin de lancer le programme /usr/sbin/rpc.portmap
.
Certaines distributions de Linux ont déjà dans le code
du script /etc/rc.d/rc.inet2
ce qui est nécessaire pour lancer
ce démon. Tout ce que vous avez à faire, c'est de décommenter ce qui
est nécessaire puis de rebooter votre machine pour l'activer.
Le RPC portmapper (manuel portmap(8c)) est un serveur qui convertit les
numéros des programmes RPC en numéros de ports pour le protocole
TCP/IP (ou UDP/IP). Il doit être lancé dans un certain ordre pour
réaliser les appels RPC (ce que fait le programme client NIS)
vers les serveurs (comme par exemple un serveur NIS) sur cette machine.
Lorsque le serveur RPC est lancé, il va indiquer au démon portmap
quel numéro de port il scrute, et quels sont les numéros de programmes RPC
avec lesquels il est prêt à travailler. Lorsqu'un client souhaite réaliser
un appel RPC à certain numéro de programme, il contacte dans un premier
temps portmap
sur le serveur de la machine pour déterminer le
numéro de port où il doit alors envoyer les paquets RPC.
Normalement, les serveurs RPC stansards sont lancés par inted
(manuel inetd(8C)), donc portmap
soit être lancé avant
qu'inetd
ne soit lancé.
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 sixième paragraphe décrit comment configurer un serveur NIS sur votre
machine Linux en utilisant le ypserv
implémenté par
Peter Eriksson (<peter@ifm.liu.se>
). 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 3 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.
Le système de bibliothèque /usr/lib/libc.a
(version 4.4.2 et
supérieure) ou la bibliothèque dynamique /usr/lib/libc.sa
et
sa DLL correspondante contiennent tous les appels systèmes correspondants
pour compiler sans problème les programmes clients et serveurs NIS.
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.funet.fi /pub/Linux/BETA/NYS/clients yp-clients-?.?.tar.gz
ftp.lysator.liu.se /pub/NYS/clients yp-clients-?.?.tar.gz
sunsite.unc.edu /pub/Linux/system/Network/admin yp-clients-2.2.tar.gz
Une fois ce fichier récupéré, suivez les instructions fournies avec les programmes.
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
.
Vous devez réaliser cette opération en tant que root bien sûr. Les autres
binaires (ypwhich, ypcat, yppoll, ypmatch
) doivent être
placés dans un répertoire accessible à tous les utilisateurs, par exemple
dans /usr/etc
ou /usr/local/bin
. Il vaut mieux tester
ypbind
avant de l'incorporer dans /etc/rc.d/rc.inet2
.
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 passes 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
Finalement, n'oubliez pas d'ajouter nis
dans le fichier
/etc/host.cong
(ligne nis
).
Pour plus de détail, lire la page de manuel resolv+.8
.
Vous devriez être capables d'utiliser les programmes clients tels
que ypcat
, etc. Par exemple, ypcat passwd
vous
donne la liste des mots de passes (crypté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 lancé correctement.
Si le test a fonctionné correctement, vous pouvez alors changer le
fichier /etc/rc.d/rc.M
et /etc/rc.d/rc.inet2
sur votre système pour qu'ypbind
soit lancé au boot et pour
que votre machine agisse comme une cliente NIS. Editez le fichier
/etc/rc.d/rc.M
et regardez les commandes qui fixent le nom du domaine.
Changez le nom du domaine dans le nom de votre domaine (NDT : puissant :-)).
Vous devez également éditer le fichier /etc/rc.d/rc.inet2
,
décommentez les lignes qui lancent le démon
rpc.portmap
, et ajoutez les lignes suivantes juste après :
#
# Lance le demon ypbind
#
if [ -f ${NET}/ypbind -a -d /var/yp ]; then
echo -n " ypbind"
${NET}/ypbind
fi
A la différence des systèmes SUN NIS, il n'est pas nécessaire
d'éditer les fichiers /etc/passwd
et /etc/group
pour
tirer profit de NIS. L'implémentation de Sun oblige à mettre une ligne
+:*:0:0:::
dans le fichier /etc/passwd
et une ligne +:*:0:
dans /etc/group
pour indiquer à NIS
de chercher le mot de passe ainsi que le groupe dans la base de données
NIS.
IMPORTANT : Notez que la commande finger
va vous indiquer
no such user si vous n'ajoutez pas la ligne +:*:0:0:::
dans le fichier /etc/passwd
.
Si vous la mettez, ce problème ne se pose plus.
Bon, ça y est, rebootez la machine et regardez si ypbind
est
lancé.
IMPORTANT : Notez que la caractéristique de groupe réseau est implémentée à partir de la version 4.5.26 de la libc. Netgroups permet le contrôle d'accès pour toutes les machines et tous les utilisateurs NIS dans le domaine, et ils nécessitent une entrée du genre :
+@cette_machine_utilisateurs
dans /etc/passwd
. Mais si vous avez une version de la
libc antécédente à la 4.5.26, tous les utilisateurs référencés dans la base de données
des mots de passe peuvent accéder à votre machine Linux si vous lancez
ypbind
.
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