5 De quoi avez-vous besoin pour configurer NIS ?

Contenu de cette section

5.1 Le RPC Portmapper

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

5.2 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 sixième paragraphe décrit comment configurer un serveur NIS sur votre machine Linux en utilisant le ypserv implémenté par Peter Eriksson (<pen@lysator.liu.se>). Notez que cette implémentation ne supporte pas le concept maître-esclave dont nous avons parlé dans le paragraphe 3. En utilisant ce programme, tous vos serveurs NIS seronts des serveurs maîtres. 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.

5.3 Les programmes

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   /pcsoft2/linux/local/yp          yp-clients.tar.gz
  ftp.funet.fi           /pub/OS/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.tar.gz
  ftp.ibp.fr             /pub/linux/nys/clients           yp-clients.tar.gz

(NdT: Une nouvelle version existe : yp-clients-1.6.tar.gz)

Une fois ce fichier récupéré, suivez les instructions fournies avec les programmes.

5.4 Configurer un client NIS en utilisant le NIS traditionnel

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 :

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