Q1.
|
Quel est le paquet qui contient les outils
du service NIS ? Comment
installer ce paquet ?
Rechercher la chaîne de caractères "network information service" dans les
descriptions de paquets pour identifier le paquet à installer.
|
|
Identification du paquet :
$ aptitude search '?description(network information service)'
p libnet-nis-perl - Interface to Sun's Network Information Service
p melange - IPAM management service for Openstack - Daemons
p nis - clients and daemons for the Network Information Service (NIS)
p python-melange - IPAM management service for Openstack - Python library
Installation du paquet nis :
# aptitude install nis
Les NOUVEAUX paquets suivants vont être installés :
libgssglue1{a} libslp1{a} libtirpc1{a} nis rpcbind{a}
<snipped/>
[ ok ] Starting rpcbind daemon....
Paramétrage de nis (3.17-32) ...
[ ok ] Stopping NIS services: ypbind ypserv ypppasswdd ypxfrd.
[info] Setting NIS domainname to: nis.lab.
[FAIL] Starting NIS services: ypbind[....] binding to YP server..failed (backgrounded).
. ok
Lors de l'installation du paquet, on attribue un nom de domaine
NIS. Dans cette exemple, le
domaine est : nis.lab . Ce nom de
domaine est à priori sans rapport avec le service de résolution des
noms de domaine de l'Internet : le service DNS.
|
Q2.
|
Quelle est l'opération à effectuer pour
affecter le rôle NIS du poste ?
Quel est le fichier de configuration concerné ?
Consulter le script système de lancement du service (runlevels) et identifier le fichier de
configuration à éditer.
|
|
# grep '/etc/default' /etc/init.d/nis
# Customize the variables in /etc/default/nis rather than here
[ -f /etc/default/nis ] && . /etc/default/nis
test -f ${NET}/ypbind -a -f /etc/defaultdomain || exit 0
nname=`cat /etc/defaultdomain`
Le répertoire /etc/default/
contient les fichiers de paramétrage des services. Ces fichiers
sont consultés à chaque lancement des services à partir des scripts
d'initialisation (runlevels) du
répertoire /etc/init.d/ . Il faut donc
éditer le fichier /etc/default/nis
pour affecter le rôle client
ou serveur.
Dans le cas du serveur, il est pas nécessaire de modifier ce
fichier sachant que le rôle client est attribué par défaut. Pour
faciliter la mise au point, il est aussi très pratique de se
déclarer client de son propre service.
# grep ^NIS /etc/default/nis
NISSERVER=master
NISCLIENT=true
NISMASTER=
|
Q3.
|
Quelle est l'opération à effectuer pour
désigner le serveur NIS ? Quel
est le fichier de configuration concerné ?
Rechercher les éléments relatifs à la la désignation du serveur
dans la liste des fichiers de configuration fournis avec le
paquet.
Éditer ce fichier en indiquant l'adresse IP du serveur NIS.
|
|
Le fichier recherché est yp.conf .
# dpkg -L nis | grep 'yp.conf'
/usr/share/man/man5/yp.conf.5.gz
/etc/yp.conf
Dans notre cas le fichier contient les deux instructions
suivantes.
# grep -v '^#' /etc/yp.conf
ypserver ::1
ypserver 127.0.0.1
|
Note |
Cet exemple est basé sur l'utilisation d'une double pile réseau
IPv4 + IPv6. La capture réseau donnée ci-avant montre
que seule la pile réseau IPv4
est utilisée par le démon client NIS.
|
|
Q4.
|
Quel est l'outil qui permet de lister les
services accessibles via un appel RPC ? Comment peut-on relancer le service
NIS s'il n'est pas actif
?
Rechercher dans le support The Linux NIS(YP)/NYS/NIS+ HOWTO l'outil
utilisé pour interroger le multiplexeur d'appel de procédure
distant.
|
|
L'outil à utiliser est rpcinfo.
Il est fourni par le paquet rpcbind.
# dpkg -S `which rpcinfo`
rpcbind: /usr/sbin/rpcinfo
L'option historique -p liée à
IPv4 a été remplacée par
-s pour tenir compte des deux
protocoles de couche réseau. Voici un exmple d'exécution.
# rpcinfo -s
program version(s) netid(s) service owner
100000 2,3,4 local,udp,tcp,udp6,tcp6 portmapper superuser
100004 1,2 tcp,udp ypserv superuser
100009 1 udp yppasswdd superuser
600100069 1 tcp,udp fypxfrd superuser
100007 1,2 tcp,udp ypbind superuser
100024 1 tcp6,udp6,tcp,udp status 102
Si les démons ypbind et
ypserv ne sont pas présent dans la
liste des services ouverts, on doit faire appels aux scripts des
niveaux de démarrage (runlevels) pour
relancer le service. Deux méthodes sont disponibles.
# /etc/init.d/nis restart
# service nis restart
|
Q5.
|
Où sont placés les fichiers de base de
données NIS dans l'arborescence
système ?
Rechercher dans le support The Linux NIS(YP)/NYS/NIS+ HOWTO ainsi que
dans la liste des fichiers et répertoires du paquet.
|
|
Par définition, les données d'un service doivent se trouver dans
l'arborescence /var . On recherche
donc cette arborescence dans la liste des fichiers du paquet.
# dpkg -L nis | grep var
/var
/var/yp
/var/yp/Makefile
/var/yp/nicknames
Le répertoire recherché est donc /var/yp .
|
Q6.
|
Quel est le procédé utilisé par le service
NIS pour publier les
informations à destination des clients ? Quel est l'outil utilisé
pour générer les données du service ?
Consulter le support The Linux NIS(YP)/NYS/NIS+ HOWTO, la
documentation fournie avec le paquet ainsi que les fichiers
contenus dans le répertoire identifié à la question précédente.
|
|
Le répertoire /var/yp contient un
fichier Makefile qui gère les appels
à la fonction de hachage utilisée pour traiter les fichiers de
configuration du serveur NIS.
L'outil make utilise
automatiquement ce fichier et déclenche le hachage d'un fichier de
configuration dès que celui-ci a été modifié.
Les résultats des différents hachages sont ensuite publiés via
les appels de procédures distants (RPC) traités respectivement par les démons
ypbind et ypserv du client et du serveur.
Exemple d'exécution de l'outil make.
# make
make[1]: entrant dans le répertoire « /var/yp/nis.lab »
Updating netid.byname...
make[1]: quittant le répertoire « /var/yp/nis.lab »
|
Note |
L'outil make doit
nécessairement être exécuté à partir du répertoire /var/yp .
|
|
Q7.
|
Quels sont les fichiers de configuration
propagés par défaut par le serveur NIS ?
Consulter le support The Linux NIS(YP)/NYS/NIS+ HOWTO la
documentation fournie avec le paquet ainsi que les fichiers
contenus dans le répertoire contenant les données du service
NIS.
|
|
C'est le fichier Makefile qui
contient les directives de hachage. La règle utilisée par défaut
est désignée par le mot clé all: .
# grep -i ^all Makefile
ALL = passwd group hosts rpc services netid protocols netgrp
ALL += shadow
ALL += passwd.adjunct
all: $(ALL)
|
Q8.
|
Comment faire pour que les identifiants
utilisateur uid et gid diffusés via le service NIS soient comptés à partir de 2000
?
Reprendre le fichier de configuration utilisé à la question
précédente et repérer les directives relatives aux identifiants
utilisateur.
|
|
Le Makefile contient deux
variables qui donnent les valeurs minimum des identifiants.
# grep ^MIN[G,U]ID Makefile
MINUID=1000
MINGID=1000
Il faut alors éditer le fichier pour passer à 2000.
|
Q9.
|
Comment créer un nouveau compte utilisateur
baptisé etu-nis ayant justement la
valeur 2000 pour les identifiants uid et gid ?
Comment publier ce nouveau compte utilisateur via le service
NIS ?
Rechercher dans la liste des options de l'outil de création des
comptes utilisateur «locaux».
|
|
L'outil de création de compte utilisateur est adduser et les options à utiliser
sont --uid et --gid . Cependant, l'utilisation de la dernière
option suppose que le groupe soit préexistant. On réalise donc
l'opération en deux étapes.
-
On commence par la création du groupe.
# addgroup --gid 2000 etu-nis
Ajout du groupe « etu-nis » (GID 2000)...
make: entrant dans le répertoire « /var/yp »
make[1]: entrant dans le répertoire « /var/yp/nis.lab »
<snip/>
-
On passe ensuite à la création du compte proprement dit.
# adduser --home /ahome/etu-nis --uid 2000 --ingroup etu-nis etu-nis
Ajout de l'utilisateur « etu-nis » ...
make: entrant dans le répertoire « /var/yp »
<snip/>
Ajout du nouvel utilisateur « etu-nis » (2000) avec le groupe « etu-nis » ...
make: entrant dans le répertoire « /var/yp »
-
Enfin, on vérifie que les bons identifiants ont été
attribués.
# id etu-nis
uid=2000(etu-nis) gid=2000(etu-nis) groupes=2000(etu-nis)
|
Q10.
|
Quels sont les tests à effectuer pour
valider la publication des données via le service NIS ?
Consulter la liste des commandes yp* fournies avec le paquet
nis.
|
|
La commande utile est ypcat et les ressources à lister
sont relatives aux fichiers système /etc/passwd et /etc/group .
# ypcat passwd
etu-nis:x:2000:2000:Etudiant NIS,,,:/ahome/etu-nis:/bin/bash
# ypcat group
etu-nis:x:2000:
|