Le code de NIS+ pour Linux a été développé pour la bibliothèque GNU C 2. Il existe également une version pour la libc5 de Linux, puisque toutes les applications commerciales sont compilées en édition de lien avec cette bibliothèque, et que vous ne pouvez pas les recompiler en utilisant la glibc. Il y a des problèmes avec la libc5 et NIS+: Vous ne pourrez pas réaliser d'édition de lien statique de vos programmes, et les programmes compilés avec cette bibliothèque ne fonctionneront pas avec les autres versions de la libc5.
Vous devez récupérer et recompiler la dernière version de la glibc2, et une distribution basée sur cette bibliothèque comme la Redhat Mustang ou l'instable Debian. Mais attention : il s'agit toujours d'une version bêta. Lisez la documentation concernant la glibc et celle fournie par la distribution. La glibc2.0.x ne gère pas pleinement NIS+, et ne l'intégrera jamais. La première version avec la gestion NIS+ sera la 2.1.
Les programmes clients NIS+ peuvent être récupérés sur les sites :
Site Repertoire Nom du fichier
ftp.kernel.org /pub/software/libs/glibc libc-*, glibc-crypt-*,
glibc-linuxthreads-*
ftp.kernel.org /pub/linux/utils/net/NIS+ nis-tools-1.4.2.tar.gz
ftp.kernel.org /pub/linux/utils/net/NIS+ pam_keylogin-1.2.tar.gz
Les distributions basées sur la glibc peuvent être récupérées sur les sites :
Site Repertoire
ftp.redhat.com /pub/redhat/redhat-5.1
ftp.debian.org /pub/debian/dists/hamm
Pour compiler la glibc, suivez les instructions livrées avec les sources. Vous pouvez trouver à l'adresse suivante la version patchée de la libc5, basée sur NYS et sur les sources de la glibc, qui peut être utilisée pour remplacer la libc5.
Site Repertoire Nom du fichier
ftp.kernel.org /pub/linux/utils/net/NIS+ libc-5.4.44-nsl-0.4.10.tar.gz
Vous pouvez également consulter le site http://www-vt.uni-paderborn.de/~kukuk/linux/nisplus.html pour plus d'informations ainsi que pour avoir les dernières sources.
IMPORTANT : pour configurer un client NIS+, lisez la documentation NIS+ Solaris pour voir ce qu'il convient de faire du côté serveur. Ce document ne décrit que le côté client !
Après avoir installé la nouvelle libc ainsi que nis-tools, créez les références
pour le nouveau client sur le serveur NIS+. Assurez vous que portmap
est lancé.
Ensuite, vérifiez que votre PC Linux est à la même heure que le serveur NIS+. Pour
réaliser des RPC sécurisés, vous disposez d'une courte période de 3 minutes,
durant lesquelles les références sont valides. Lancer xntpd
sur toutes
les machines peut être une bonne idée. Après tout ça, exécutez les commandes
suivantes :
domainname nisplus.domain.
nisinit -c -H <serveur NIS+>
pour initialiser le système de lancement. Lisez la page de manuel de nisinit pour connaître les différentes options existantes. Assurez-vous que le nom de domaine est toujours bien positionné lors d'un réamorçage. Si vous ne connaissez pas votre nom de domaine NIS+ sur votre réseau, demandez-le à votre administrateur système.
Pensez également à modifier votre ficher /etc/nsswitch.conf
.
Assurez-vous que le seul service situé avec publickey est nisplus
("publickey: nisplus"), et rien d'autre !
Ensuite, lancez keyserv
et assurez-vous qu'il sera toujours lancé
lors de l'amorçage de la machine. Lancez
keylogin -r
pour conserver la clef privée sur votre système (j'espère
que vous avez ajouté la clef publique de la nouvelle machine
sur le serveur NIS+ !)."niscat passwd.org_dir" doit désormais vous donner toutes les entrées contenues dans la base de données passwd.
Lorsque l'utilisateur se connecte, il a besoin de fixer sa clef secrète
sur le serveur de clef. Cela est effectué en appelant keylogin
.
Le login à partir du paquetage shadow fera cela à la place de
l'utilisateur. Pour un login de type PAM, vous devez installer
pam_keylogin-1.1.tar.gz
et modifier le fichier
/etc/pam.d/login
pour utiliser pam_unix_auth
, et non pwdb
qui
ne gère pas NIS+. Voici un exemple :
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_keylogin.so
auth required /lib/security/pam_unix_auth.so
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_unix_passwd.so
session required /lib/security/pam_unix_session.so
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 nisplus dns
indique que la fonction de recherche doit dans un premier temps
chercher dans le fichier local /etc/hosts
, suivi par une recherche
NIS+ et enfin via le service de recherche de noms
(/etc/resolv.conf
et named
). À ce moment là, si aucune machine n'est
trouvée, alors une erreur est renvoyée.
Voici un exemple de bon fichier /etc/nsswitch.conf
# Un exemple de configuration de NSS. 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 a rien trouve
#
passwd: compat
# pour libc5: passwd: files nisplus
group: compat
# pour libc5: group: files nisplus
shadow: compat
# pour libc5: shadow: files nisplus
passwd_compat: nisplus
group_compat: nisplus
shadow_compat: nisplus
hosts: nisplus files dns
services: nisplus [NOTFOUND=return] files
networks: nisplus [NOTFOUND=return] files
protocols: nisplus [NOTFOUND=return] files
rpc: nisplus [NOTFOUND=return] files
ethers: nisplus [NOTFOUND=return] files
netmasks: nisplus [NOTFOUND=return] files
netgroup: nisplus
bootparams: nisplus [NOTFOUND=return] files
publickey: nisplus
automount: files
aliases: nisplus [NOTFOUND=return] files