DESCRIPTION
Le fichier de configuration du service de noms (« Name Service Switch » ou NSS), /etc/nsswitch.conf, est utilisé par la bibliothèque C de GNU pour déterminer les sources desquelles obtenir les renseignements de service de noms en fonction des catégories, et dans quel ordre. Chaque catégorie de renseignements est identifiée par un nom de base de données.Le fichier est en texte ASCII, avec les colonnes séparées par des espaces ou des tabulations. La première colonne indique le nom de la base de données. Les autres colonnes décrivent les sources, dans l'ordre des requêtes à réaliser, et un ensemble limité d'actions possibles en fonction du résultat de la résolution.
Les bases de données suivantes sont comprises par la bibliothèque C de GNU :
- aliases
- Alias d'adresses électroniques, utilisés par getaliasent(3) et les fonctions apparentées.
- ethers
- Numéros Ethernet.
- group
- Groupes d'utilisateurs, utilisés par getgrent(3) et les fonctions apparentées.
- hosts
- Noms d'hôtes et leurs adresses, utilisés par gethostbyname(3) et les fonctions apparentées.
- initgroups
- Liste d'accès de groupes supplémentaires, utilisée par la fonction getgrouplist(3).
- 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
- Noms et masques de réseau, utilisés par getnetent(3) et les fonctions apparentées.
- passwd
- Mots de passe des utilisateurs, utilisés par getpwent(3) et les fonctions apparentées.
- protocols
- Protocoles réseau, utilisés par getprotoent(3) et les fonctions apparentées.
- publickey
- Clés publiques et privées des « secure_RPC », utilisées par NFS et NIS+.
- rpc
- Noms et numéros de RPC, utilisés par getrpcbyname(3) et les fonctions apparentées.
- services
- Services réseau, utilisés par getservent(3) et les fonctions apparentées.
- shadow
- Mots de passe cachés des utilisateurs, utilisé par getspnam(3) et les fonctions apparentées.
Voici un exemple de fichier /etc/nsswitch.conf :
-
- 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 est le nom de la base de données. Les autres colonnes indiquent :
- *
- une ou plusieurs spécifications de services, par exemple « files », « db » ou « nis ». L'ordre des services sur la ligne indique l'ordre dans lequel les requêtes seront réalisées sur ces services, tour à tour, jusqu'à ce qu'un résultat soit obtenu ;
- *
- des actions facultatives à réaliser si un résultat particulier est obtenu du service précédent, par exemple « [NOTFOUND=return] ».
Les spécifications de services pris en charge sur le système dépendent de la présence de bibliothèques partagées, et sont par conséquent évolutives. Les bibliothèques appelées /lib/libnss_SERVICE.so.X fourniront le SERVICE indiqué. Sur une installation de base, « files », « db », « nis » et « nisplus » sont utilisables. Pour la base de données hosts, « dns » peut aussi être indiqué. Pour les bases de données passwd, group et shadow, « compat » peut aussi être indiqué (consultez Mode de compatibilité ci-dessous). Le numéro de version X peut être 1 pour glibc 2.0 ou 2 pour glibc 2.1 et versions ultérieures. Sur les systèmes avec des bibliothèques supplémentaires, d'autres services peuvent être disponibles comme « hesiod », « ldap », « winbind » et « wins ».
Une action peut aussi être indiquée après une spécification de service. L'action modifie le comportement après un résultat obtenu de la source de données précédente. Les actions sont désignées sous la forme générale :
-
[ÉTAT=ACTION]
[!ÉTAT=ACTION]
où
-
ÉTAT => success | notfound | unavail | tryagain
ACTION => return | continue
Le ! inverse le résultat du test, en correspondant à tous les résultats possibles sauf celui indiqué. La casse des mots-clés n'est pas significative.
La valeur ÉTAT est comparée au résultat de la fonction de résolution appelée par la spécification de service précédente, et fait partie des valeurs suivantes.
-
- success
- Aucune erreur ne s'est produite, et la donnée demandée a été trouvée. L'action par défaut pour cette condition est « return ».
- notfound
- La résolution a réussi, mais la donnée demandée n'a pas été trouvée. L'action par défaut pour cette condition est « continue ».
- unavail
- Le service est indisponible de manière permanente. Cela peut indiquer que le fichier nécessaire n'est pas lisible, ou, pour les services réseau, que le serveur n'est pas disponible ou n'accepte pas les requêtes. L'action par défaut pour cette condition est « continue ».
- tryagain
- Le service est temporairement indisponible. Cela signifie qu'un fichier est verrouillé, et qu'un serveur ne peut pas actuellement accepter davantage de connexions. L'action par défaut pour cette condition est « continue ».
La valeur ACTION fait partie des valeurs suivantes.
-
- return
- Renvoyer un résultat maintenant. Ne pas appeler d'autre fonction de résolution. Cependant, pour des raisons de compatibilité, si c'est l'action sélectionnée pour la base de données group et l'état notfound, et que le fichier de configuration ne contient pas la ligne initgroups, la fonction de résolution suivante est toujours appelée sans affecter le résultat de recherche.
- continue
- Appeler la fonction de résolution suivante.
Mode de compatibilité (compat)
le service NSS « compat » ressemble à « files », à la différence qu'il utilise en plus des entrées particulières de /etc/passwd pour permettre aux utilisateurs ou membres de groupes réseau d'accéder au système. Les entrées suivantes sont valables dans ce mode.-
- +utilisateur
- Inclure l'utilisateur indiqué depuis la carte de passwd NIS.
- +utilisateur::::::
- Inclure l'utilisateur indiqué depuis la carte de mots de passe NIS, et écrase les valeurs issues des champs non vides.
- +@groupe_réseau
- Inclure tous les utilisateurs du groupe_réseau donné.
- -utilisateur
- Exclure l'utilisateur indiqué de la carte de passwd NIS.
- -@groupe_réseau
- Exclure tous les utilisateurs du groupe_réseau donné.
- +
- Inclure tous les utilisateurs, sauf ceux exclus précédemment, depuis la carte de passwd NIS.
La source est « nis » par défaut, mais cela peut être écrasé en indiquant « nisplus » comme source des pseudobases de données passwd_compat, group_compat et shadow_compat.
FICHIERS
Un service appelé SERVICE est implémenté par une bibliothèque objet partagée appelée libnss_SERVICE.so.X qui se trouve dans /lib.-
- /etc/nsswitch.conf fichier de configuration de NSS.
- /lib/libnss_compat.so.X
- implémente « compat ».
- /lib/libnss_db.so.X
- implémente « db ».
- /lib/libnss_dns.so.X
- implémente « dns ».
- /lib/libnss_files.so.X
- implémente « files ».
- /lib/libnss_hesiod.so.X
- implémente « hesoid ».
- /lib/libnss_nis.so.X
- implémente « nis ».
- /lib/libnss_nisplus.so.X
- implémente « nisplus ».
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 d'utiliser l'ancienne configuration.À l'origine, il n'y avait qu'une seule source pour les renseignements de service, souvent sous forme d'un simple fichier de configuration (par exemple /etc/passwd). Cependant, puisque d'autres services de noms, comme NIS (« Network Information Service ») et le DNS (« Domain Name Service »), sont devenus populaires, une méthode plus flexible était nécessaire par rapport aux ordonnancements des recherches codés dans la bibliothèque C. Le mécanisme NSS (« Name Service Switch »), qui était basé sur le mécanisme utilisé par Sun Microsystems dans la bibliothèque C de Solaris 2, a introduit une solution plus propre au problème.
COLOPHON
Cette page fait partie de la publication 3.65 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
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Jean-Luc Coulon et l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à <[email protected]> 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> ».