NSSWITCH.CONF(5)

NOM
nsswitch.conf - Fichier de configuration du service de noms (« Name Service Switch »)

DESCRIPTION
The Name Service Switch (NSS) configuration file, /etc/nsswitch.conf, is used by the GNU C Library and certain other applications to determine the sources from which to obtain name-service information in a range of categories, and in what order. Each category of information is identified by a database name.

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.

The GNU C Library ignores databases with unknown names. Some applications use this to implement special handling for their own databases. For example, sudo(8) consults the sudoers database.

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 | merge

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.

    merge
        [SUCCESS=merge] is used between two database entries. When a group is located in the first of the two group entries, processing will continue on to the next one. If the group is also found in the next entry (and the group name and GID are an exact match), the member list of the second entry will be added to the group object to be returned. Available since glibc 2.24. Note that merging will not be done for getgrent(3) nor will duplicate members be pruned when they occur in both entries being merged.

  Mode de compatibilité (compat)
The NSS "compat" service is similar to "files" except that it additionally permits special entries in corresponding files for granting users or members of netgroups access to the system. The following entries are valid in this mode:

    For passwd and shadow databases:

        +utilisateur
            Include the specified user from the NIS passwd/shadow map.

        +user::::::
            Include the specified user from the NIS passwd map, but override with non-empty passwd fields.

        +@groupe_réseau
            Inclure tous les utilisateurs du groupe_réseau donné.

        -utilisateur
            Exclude the specified user from the NIS passwd/shadow map.

        -@groupe_réseau
            Exclure tous les utilisateurs du groupe_réseau donné.

        +   Include every user, except previously excluded ones, from the NIS passwd/shadow map.

    For group database:

        +group
            Include the specified group from the NIS group map.

        -group
            Exclude the specified group from the NIS group map.

        +   Include every group, except previously excluded ones, from the NIS group map.

By default, the source is "nis", but this may be overridden by specifying any NSS service except "compat" itself as the source for the pseudo-databases passwd_compat, group_compat, and 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 ».

The following files are read when "files" source is specified for respective databases:

    aliases
        /etc/aliases
    ethers
        /etc/ethers
    group
        /etc/group
    hosts
        /etc/hosts
    initgroups
        /etc/group
    netgroup
        /etc/netgroup
    networks
        /etc/networks
    passwd
        /etc/passwd
    protocols
        /etc/protocols
    publickey
        /etc/publickey
    rpc /etc/rpc
    services
        /etc/services
    shadow
        /etc/shadow

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.

VOIR AUSSI
getent(1), nss(5)

COLOPHON
Cette page fait partie de la publication 5.10 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org> et David Prévot <david@tilapin.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.