NOM
nsswitch.conf - Fichier de configuration des bases de données systèmes
(« System Databases ») et du service de noms (« Name Service Switch »).
Plusieurs fonctions de la bibliothèque C doivent être configurées pour
fonctionner correctement dans l’environnement local.
Traditionnellement, cette configuration était réalisée par
l’intermédiaire de fichiers (par exemple « /etc/passwd »), mais
d’autres services de noms, tels que « Network Information Service »
(NIS) le « Domain Name Service » (DNS) sont devenus populaires, et ils
ont été implémentés dans la bibliothèque C, habituellement avec un
ordre de recherche fixe.
La bibliothèque libc5 de Linux implémentant NYS et la bibliothèque C
GNU 2.x (libc.so.6) fournissent une solution plus propre à ce problème.
Elle a été construite à partir d’une méthode de Sun Microsystems,
utilisée dans la bibliothèque C de Solaris 2. On a conservé leur
dénomination, et ce schéma est appelé « Name Service Switch » (NSS).
Les sources des « bases de données », et leur ordre de recherche sont
indiqués dans le fichier /etc/nsswitch.conf.
Les bases de données suivantes sont disponibles dans le NSS :
aliases
Alias pour le courrier électronique, utilisés par sendmail(8).
Aujourd’hui ignorés.
ethers Numéros Ethernet.
group Groupes d’utilisateur, utilisés par les fonctions getgrent(3).
hosts Noms d’hôtes et leurs adresses, utilisés par des fonctions comme
gethostbyname(3) ou similaires.
netgroup
Liste d’hôtes et d’utilisateurs valable pour l’ensemble du
réseau, servant à établir les règles d’accès. Les bibliothèques
C antérieures à glibc 2.1 ne géraient les groupes réseau qu’avec
NIS.
networks
Les noms et les masques des réseaux, utilisés par les fonctions
getnetent(3).
passwd Mots de passe des utilisateurs, utilisés par les fonctions
getpwent(3).
protocols
Protocoles réseau, utilisés par les fonctions getprotoent(3).
publickey
Clés publiques et privées des « secure_RPC », utilisées par NFS
et NIS+.
rpc Noms d’appel et numéro des procédures à distance, utilisés par
les fonctions comme getrpcbyname(3).
services
Services réseau, utilisés par les fonctions getservent(3).
shadow Fichier des mots de passe cachés des utilisateurs, utilisé par
getspnam(3).
Un exemple de fichier /etc/nsswitch.conf pourrait être le suivant (il
s’agit des valeurs par défaut si /etc/nsswitch.conf est absent) :
passwd: compat
group: compat
shadow: compat
hosts: dns [!UNAVAIL=return] files
networks: nis [NOTFOUND=return] files
ethers: nis [NOTFOUND=return] files
protocols: nis [NOTFOUND=return] files
rpc: nis [NOTFOUND=return] files
services: nis [NOTFOUND=return] files
La première colonne correspond à la base de données. Le reste de la
ligne indique la méthode de recherche dans cette base. Chaque base de
données peut avoir sa propre méthode.
La configuration de chaque base de données comporte deux éléments
différents :
* Indication du service, comme « files », « db » ou « nis ».
* Comportement à adopter pour la recherche, comme
« [NOTFOUND=return] ».
Les spécifications de service possibles pour la bibliothèque libc5 avec
NYS, sont « files », « nis » et « nisplus ». Vous pouvez ajouter
« dns » comme service supplémentaire pour les hôtes, « compat » pour
passwd et group (mais pas pour shadow).
Avec la bibliothèque C GNU, vous aurez besoin d’un fichier appelé
/lib/libnss_SERVICE.so.X pour chaque SERVICE utilisé. Avec une
installation standard, vous pouvez utiliser « files », « db », « nis »
et « nisplus ». Pour les noms d’hôtes, vous pouvez indiquer « dns »
comme service supplémentaire, passwd, group et shadow acceptent le
service « compat ». Ces services ne sont pas utilisés par libc5 avec
NYS. Le numéro de version X est 1 pour glibc 2.0 et 2 pour glibc 2.1.
Le second élément de la configuration fournit un contrôle plus fin sur
la méthode de recherche. Des actions sont indiquées, entre crochets,
entre deux noms de services. La forme générale est la suivante :
‘[’ ( ‘!’? STATUS ‘=’ ACTION )+ ‘]’
où
STATUS => success | notfound | unavail | tryagain
ACTION => return | continue
Il n’y a pas de distinction entre majuscule et minuscule dans les
mots-clés. Les valeurs de STATUS correspondent au résultat d’une
fonction de recherche pour un service particulier. Ces mots-clés
signifient :
success
Aucune erreur ne s’est produite, et la donnée recherchée a été
trouvée. L’action par défaut est « return ».
notfound
La méthode de recherche a bien fonctionné, mais la valeur
désirée n’a pas été trouvée. L’action par défaut est
« continue ».
unavail
Le service est indisponible de manière permanente. Ceci peut
indiquer que le fichier nécessaire n’existe pas, ou, pour les
DNS, que le serveur n’accepte pas les requêtes. L’action par
défaut est « continue ».
tryagain
Le service considéré est temporairement indisponible. Ceci
signifie qu’un fichier est verrouillé, et qu’un serveur ne peut
pas actuellement accepter davantage de connexions. L’action par
défaut est « continue ».
Interactions avec la syntaxe +/- (mode compat)
La bibliothèque libc5 sans NYS de Linux n’accepte pas le service de
résolution de noms, mais permet un certain niveau de contrôle par
l’utilisateur. Dans le fichier /etc/passwd, vous pouvez avoir des
entrées de la forme +utilisateur ou +@groupe_réseau (inclure
l’utilisateur indiqué depuis le fichier NIS passwd), -utilisateur ou
-@groupe_réseau (exclure l’utilisateur indiqué) et + (inclure tous les
utilisateurs depuis le fichier NIS passwd, sauf ceux qui ont été
explicitement exclus).
Vous pouvez surcharger certains champs passés pour un utilisateur
particulier depuis la carte de mot de passes NIS en utilisant la forme
étendue +user:::::: dans /etc/passwd. Les champs non vide surchargeront
les informations dans la carte de mots de passe NIS.
Comme la plupart des gens placent uniquement un + à la fin de
/etc/passwd pour tout inclure depuis NIS, il est possible d’utiliser
une méthode plus rapide (« passwd: files nis ») qui ne nécessite pas
d’entrée + dans /etc/passwd, /etc/group, ni /etc/shadow. Si cela ne
suffit pas, le service NSS « compat » permet d’utiliser la sémantique
+/- complète. Par défaut, la source est « nis », mais on peut la
surcharger en indiquant « nisplus » comme source des pseudo bases de
données passwd_compat, group_compat et shadow_compat. Ces pseudo bases
de données ne sont disponibles que dans la bibliothèque C GNU.
FICHIERS
Un service appelé SERVICE est implémenté par une bibliothèque objet
partagée nommée libnss_SERVICE.so.X qui se trouve dans /lib.
/etc/nsswitch.conf fichier de configuration
/lib/libnss_compat.so.X implémente « compat » pour la bibliothèque
glibc 2 ;
/lib/libnss_db.so.X implémente « db » pour la bibliothèque
glibc 2 ;
/lib/libnss_dns.so.X implémente « dns » pour la bibliothèque
glibc 2 ;
/lib/libnss_files.so.X implémente « files » pour la bibliothèque
glibc 2 ;
/lib/libnss_hesiod.so.X implémente « hesoid » pour la bibliothèque
glibc 2 ;
/lib/libnss_nis.so.X implémente « nis » pour la bibliothèque
glibc 2 ;
/lib/libnss_nisplus.so.2 implémente « nisplus » pour la bibliothèque
glibc 2.
NOTES
Au sein de chaque processus qui utilise nsswitch.conf, le fichier n’est
lu en entier qu’une seule fois. Si le fichier est modifié par la suite,
le processus continuera à utiliser l’ancienne configuration.
Avec Solaris, il n’est pas possible de lier statiquement des programmes
utilisant les services NSS. Avec Linux, cela ne pose aucun problème.
Sur un système Debian, les autres agents de transport du courriel
peuvent ignorer ou pas le fichier aliases. Par exemple, au contraire de
sendmail, Exim ne l’ignore pas.
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Jean-Luc Coulon (f5ibh)
<jean-luc.coulon@wanadoo.fr> et l’équipe francophone de traduction de
Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».