nsswitch.conf
Table des matières
Retour à l'index
NOM
nsswitch.conf - Fichier de configuration du service de noms (« Name Service
Switch »)
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 et
d’autres applications pour déterminer les sources à partir desquelles
obtenir les renseignements de service de noms en fonction des catégories et
dans quel ordre. Chaque catégorie de renseignement 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 à des 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 à la 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és par getspnam(3) et les
fonctions apparentées.
La bibliothèque GNU C ignore les bases de données avec des noms
inconnus. Certaines applications utilisent cela pour mettre en œuvre une
gestion spéciale pour leur propre base de données. Par exemple, sudo(8)
consulte la base de données sudoers. La délégation d’ID
utilisateur/groupe subalternes peut être configurée en utilisant la base de
données subid. Consulter subuid(5) et subgid(5) pour plus de
détails.
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 service, 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 service prises 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é
(consulter Mode de compatibilité ci-dessous). Le numéro de version X
peut être 1 pour la glibc 2.0 ou 2 pour la glibc 2.1 et les versions
ultérieures. Sur les systèmes avec des bibliothèques supplémentaires
installées, 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 importante.
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é ou 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] est utilisé entre deux enregistrements de base de
données. Quand un groupe est situé dans le premier des deux enregistrements
de groupe, le traitement continue dans le groupe suivant. Si le groupe est
aussi trouvé dans l’enregistrement suivant (et que le nom de groupe et le
GID correspondent exactement), la liste de membres du second enregistrement
est ajoutée à l’objet de groupe à renvoyer. Disponible depuis la
glibc 2.24. Il est à remarquer que la fusion ne sera pas faite pour
getgrent(3) et que les membres dupliqués ne seront pas supprimés quand
ils apparaissent dans les deux enregistrements fusionnés.
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.
-
Pour les bases de données passwd et shadow :
-
- +utilisateur
-
Inclure l'utilisateur indiqué depuis la carte passwd/shadow NIS.
- +utilisateur::::::
-
Inclure l'utilisateur indiqué depuis la carte passwd NIS, mais redéfinir
avec des champs passwd non vides.
- +@groupe_réseau
-
Inclure tous les utilisateurs du groupe_réseau donné.
- -utilisateur
-
Exclure l'utilisateur indiqué de la carte passwd/shadow 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 passwd/shadow NIS.
Pour la base de données group :
-
- +groupe
-
Inclure le groupe indiqué depuis la carte group NIS.
- -groupe
-
Exclure le groupe indiqué de la carte group NIS.
- +
-
Inclure tous les utilisateurs, sauf ceux exclus précédemment, depuis la
carte group NIS.
La source est « nis » par défaut, mais cela peut être écrasé en indiquant
n’importe quel service NSS excepté « compat » 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 la source « compat ».
- /lib/libnss_db.so.X
-
implémente la source « db ».
- /lib/libnss_dns.so.X
-
implémente la source « dns ».
- /lib/libnss_files.so.X
-
implémente la source « files ».
- /lib/libnss_hesiod.so.X
-
implémente la source « hesoid ».
- /lib/libnss_nis.so.X
-
implémente la source « nis ».
- /lib/libnss_nisplus.so.X
-
implémente la source « nisplus ».
Les fichiers suivants sont lus quand la source « files » est spécifiée pour
leurs bases de données respectives :
-
-
-
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
À partir de la glibc 2.33, nsswitch.conf est automatiquement rechargé si
le fichier est modifié. Dans les versions précédentes, le fichier n'était lu
en entier qu'une seule fois dans chaque processus. Si le fichier était
modifié par la suite, le processus continuait 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 DNS (« Domain Name Service »)
étaient devenus populaires, une méthode plus flexible était devenue
nécessaire pour corriger les ordres de recherche 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)
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>,
David Prévot <david@tilapin.org>
et
Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>
Cette traduction est une documentation libre ; veuillez vous reporter à la
GNU General Public License version 3
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 à
Index
- NOM
-
- DESCRIPTION
-
- Mode de compatibilité (compat)
-
- FICHIERS
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:34 GMT, September 19, 2025