7. De quoi avez-vous besoin pour configurer un serveur NIS ?

Contenu de cette section

7.1 Déterminer si vous êtes un serveur, un esclave ou un client

Pour répondre à cette question, nous pouvons considérer deux cas :

  1. votre machine va être insérée dans un réseau avec des serveurs NIS déjà existants ;
  2. vous n'avez pas encore de serveur NIS dans votre réseau.

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.

7.2 Les programmes

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.

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 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 :

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é.

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/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.

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 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.

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.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.

7.7 Le fichier nsswitch.conf

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