Page suivante Page précédente Table des matières
7. De quoi avez-vous besoin pour configurer NIS ?
7.1 Déterminez si vous êtes un serveur, un esclave ou un client
Pour répondre à cette question, nous pouvons considérer deux cas :
- votre machine va être insérée dans un réseau avec des serveurs NIS déjà existants ;
- vous n'avez pas encore de serveur NIS dans votre réseau.
Dans le premier cas, vous n'aurez besoin que des programmes clients (
ypbind, ypwhich, ypcat, yppoll, ypmatch). Le programme le plus important estypbind. 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 queypbindfonctionne, 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 versionypservimplé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.
7.2 Les programmes
La bibliothèque
/usr/lib/libc.a(version 4.4.2 et supérieure) ou la bibliothèque dynamique partagée/lib/libc.so.xcontient 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.aversion 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.gzUne fois que vous aurez récupéré ces programmes, suivez les instructions qui sont livrées avec.
yp-clients 2.2doit être utilisé avec les bibliothèqueslibc4etlibc5jusqu'à la version 5.4.20. Leslibc 5.4.21etglibc 2.xnécessitentyp-tools 1.4.1. La nouvelle versionyp-tools 2.0fonctionnera avec toutes les libc Linux. Vous ne devriez pas utiliser leslibc 5.4.21 - 5.4.35car elles présentent de nombreux défauts. Utilisez lalibc 5.4.36ou une version supérieure, sinon, la plupart des programmes de YP ne fonctionneront pas.ypbind 3.3fonctionnera également avec toutes les bibliothèques. Vous ne devriez jamais utiliser la versionypbindqui est fournie dansyp-clients 2.2.
7.3 Le démon ypbind
Nous supposons que vous avez compilé correctement les programmes et que vous êtes prêt à les installer. L'endroit où installer le démon
ypbindest le répertoire/usr/sbin. Certains peuvent vous dire que vous n'avez pas besoin deypbindsur un système qui utilise NYS. C'est faux :ypwhichetypcaten 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/binqui 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 deypbind(8). Vous aurez également besoin de ce ficher pour NYS. Un court exemple :ypserver voyager ypserver ds9Si 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 testerypbindfaites ceci :
- Vérifiez que votre nom de domaine est défini. Si ce n'est pas le cas, faites
où/bin/domainname-yp nis.domainnis.domaindoit ê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.- Lancez
/usr/sbin/rpc.portmaps'il ne tourne pas déjà.- Créez le répertoire
/var/yps'il n'existe pas.- Lancez
/usr/sbin/ypbind- Utilisez la commande
rpcinfo -p localhostpour vérifier qu'ypbindest capable d'enregistrer ses services dans portmapper. La commanderpcinfodevrait 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- Vous pouvez également lancer
rpcinfo -u localhost ypbind. Cette commande devrait alors produire :program 100007 version 2 ready and waitingVous devriez alors être capable d'utiliser les programmes clients tels que
ypcat, etc. Par exemple,ypcat passwdvous 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/ypCe répertoire DOIT exister pour qu'
ypbindsoit 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.dsur votre système pour qu'ypbindsoit 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é.
7.4 Configurer un client NIS en utilisant le NIS traditionnel
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/passwdde 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/NoShellRemarquez 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.
7.5 Configurer un client NIS en utilisant NYS
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.confcorrectement 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 ?").
7.6 Configurer un client NIS en utilisant la glibc 2.x
La glibc utilise la version "NIS traditionnelle", donc vous devrez lancer ypbind. Le fichier
/etc/nsswitch.confdoit é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.
7.7 Le fichier nsswitch.conf
Le fichier de configuration
/etc/nsswitch.confdé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.confdétermine la façon dont les recherches de noms de machines se font. Par exemple, la ligne
hosts: files nis dnsindique 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.confetnamed). 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] filesLes 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 commehesoid. Pour plus d'informations, consultez la documentation de la glibc.
Page suivante Page précédente Table des matières