Scroll to navigation

NSSWITCH.CONF(5) Manuel du programmeur Linux NSSWITCH.CONF(5)

NOM

nsswitch.conf - Fichier de configuration des bases de données systèmes (« System Databases ») et du service de noms (« Name Service Switch »).

DESCRIPTION

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 :

Alias pour le courrier électronique, utilisés par sendmail(8). Aujourd'hui ignorés.
Numéros Ethernet.
Groupes d'utilisateur, utilisés par les fonctions getgrent(3).
Noms d'hôtes et leurs adresses, utilisés par des fonctions comme gethostbyname(3) ou similaires.
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.
Les noms et les masques des réseaux, utilisés par les fonctions getnetent(3).
Mots de passe des utilisateurs, utilisés par les fonctions getpwent(3).
Protocoles réseau, utilisés par les fonctions getprotoent(3).
Clés publiques et privées des « secure_RPC », utilisées par NFS et NIS+.
Noms d'appel et numéro des procédures à distance, utilisés par les fonctions comme getrpcbyname(3).
Services réseau, utilisés par les fonctions getservent(3).
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) :

compat
compat
compat

dns [!UNAVAIL=return] files
nis [NOTFOUND=return] files
nis [NOTFOUND=return] files
nis [NOTFOUND=return] files
nis [NOTFOUND=return] files
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 )+ `]'

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 :

Aucune erreur ne s'est produite, et la donnée recherchée a été trouvée. L'action par défaut est « return ».
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 ».
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 ».
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 de Linux sans NYS ne possède pas de NSS, mais donne néanmoins quelque contrôle à l'utilisateur. Dans /etc/passwd, il est possible de mettre des entrées de la forme +utilisateur ou +@groupe (pour inclure l'utilisateur spécifié à partir de la carte NIS passwd), -utilisateur ou -@groupe (pour exclure l'utilisateur spécifié), et + (inclure tout utilisateur, sauf ceux qui sont exclus, à partir de la carte NIS passwd). 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.

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 <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <URL:http://alioth.debian.org/projects/perkamon/>.

Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <URL: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 à <perkamon-l10n-fr@lists.alioth.debian.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».

17 janvier 1999 Linux