NSSWITCH.CONF
Section : Manuel de l'administrateur Linux (
5)
Mise à jour de la version anglaise : 17 janvier 1999
Index
Menu principal
NOM
nsswitch.conf - Configuration des bases de données systèmes et des services de noms
DESCRIPTION
Plusieurs fonctions de la bibliothèque C doivent être configurées pour
fonctionner correctement dans l'environnement local.
Traditionnellement, cette configuration était établie par l'intermédiaire
de fichiers (comme
/etc/passwd,
mais de nouveaux services
de résolution de noms (comme le Network Information Service, NIS,
ou le Domain Name Service DNS) sont apparus, et ont été implémentés
dans la bibliothèque C avec un ordre de recherche fixé.
La bibliothèque libc5 de Linux implémentant NYS et la glibc
(libc.so.6) fournissent une solution plus propre à ce problème.
Elle a été construite à partir d'une idée 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 spécifiés dans le fichier
/etc/nsswitch.conf.
Les bases de données suivantes sont disponibles dans le NSS :
- aliases
-
Les alias pour le courrier, utilisés par
sendmail(8).
Ignorés de nos jours.
- ethers
-
Les numéros Ethernet.
- group
-
Les groupes d'utilisateur, servant aux fonctions
comme
getgrent(3).
- hosts
-
Les noms d'hôtes et leurs adresses, utilisés par les fonctions
du type
gethostbyname(3).
- netgroup
-
Une liste d'hôte et d'utilisateur servant aux règles d'accès.
Les bibliothèques C avant la glibc 2.1 ne supportaient ces groupes
qu'avec NIS.
- networks
-
Les noms et les masques des réseaux, utilisés par les fonctions
comme
getnetent(3).
- passwd
-
Les mots de passe des utilisateurs, utilisés par les
fonctions
getpwent(3).
- protocols
-
Les protocoles réseau, utilisés
par
getprotoent(3).
- publickey
-
Les clés publiques et privées des secure_rpc, utilisées par NIS+ et NFS.
- rpc
-
Les noms des procédures appelées à distance (RPC),
utilisés par les fonctions comme
getrpcbyname(3).
- services
-
Les services réseau, utilisés par les
fonctions
getservent(3).
- shadow
-
Le fichier de dissimulation des mots de passe des utilisateurs,
utilisé par
getspnam(3).
Un exemple de fichier
/etc/nsswitch.conf
pourrait être le suivant (ce sont les valeurs par défaut si
/etc/nsswitch.conf
manque) :
- 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, comme vous vous en doutez, correspond à la base
de données concernée, issue de la table indiquée plus haut.
Le reste de la ligne indique la méthode de recherche de cette base.
On peut indiquer une méthode différente pour chaque base de données.
La configuration de chaque base contient deux éléments différents :
- * L'indication du service, comme « files », « db » ou « nis ».
-
- * Le comportement à adopter pour la recherche,
-
comme « [NOTFOUND=return] ».
Pour la bibliothèque libc5 avec NYS, les spécifications possibles pour le
service sont « files », « nis » et « nisplus ».
Pour les noms d'hôtes, vous pouvez ajouter un service supplémentaire
« dns », et pour les mots de passe et les groupes (mais pas pour
la base de données shadow) vous pouvez employer le service « compat ».
La glibc nécessite 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.
Les mots de passe, les groupes et la base de données shadow acceptent
le service « compat ».
Ces services ne sont pas utilisés par la libC5 avec NYS.
Le numéro de version
X
est 1 pour la glibc 2.0 et 2 pour la 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 )+ `]'
avec
- STATUS => success | notfound | unavail | tryagain
-
- ACTION => return | continue
-
Il n'y a pas de distinction majuscule/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, et ce 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 accepter de connexion supplémentaire.
L'action par défaut est « continue ».
Interactions avec la syntaxe +/- (mode compat)
La bibliothèque libc5 Linux sans NYS n'accepte pas le service
de résolution de noms, mais permet un contrôle d'accès.
Dans le fichier
/etc/passwd,
vous pouvez trouver des entrées de la forme
+utilisateur ou +@groupe_reseau
(inclure l'utilisateur indiqué depuis le fichier NIS passwd),
-utilisateur ou -@groupe_réseau (exclure ces utilisateurs)
et + (inclure tous les utilisateurs depuis le fichier NIS passwd
sauf les éventuels exclus explicites).
Comme la plupart des gens placent un + à la fin de
/etc/passwd
pour tout inclure depuis NIS, il est possible d'utiliser une méthode plus
rapide (« passwd: files nis ») ne nécessitant pas d'entrée + dans
/etc/passwd,
/etc/group
et
/etc/shadow.
Si ceci ne suffit pas, le service NSS « compat » autorise
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
se trouvant dans
/lib.
-
-
/etc/nsswitch.conf
fichier de configuration
- /lib/libnss_compat.so.X
-
la source « compat » pour la bibliothèque glibc 2 ;
- /lib/libnss_db.so.X
-
la source « db » pour la bibliothèque glibc 2 ;
- /lib/libnss_dns.so.X
-
la source « dns » pour la bibliothèque glibc 2 ;
- /lib/libnss_files.so.X
-
la source « files » pour la bibliothèque glibc 2 ;
- /lib/libnss_hesoid.so.X
-
la source « hesoid » pour la bibliothèque glibc 2 ;
- /lib/libnss_nis.so.X
-
la source « nis » pour la bibliothèque glibc 2 ;
- /lib/libnss_nisplus.so.X
-
la source « nisplus » pour la bibliothèque glibc 2.
NOTES
Au sein de chaque processus qui utilise nsswitch.conf, la lecture
du fichier entier n'a lieu 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.
TRADUCTION
Ce document est une traduction réalisée par Christophe Blaess
<http://www.blaess.fr/christophe/> le 15 mai 1998
et révisée le 24 juin 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 5 nsswitch.conf ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- DESCRIPTION
-
- Interactions avec la syntaxe +/- (mode compat)
-
- FICHIERS
-
- NOTES
-
- TRADUCTION
-
Dernière mise à jour : 24 juin 2008