NSSWITCH.CONF(5) Manuel de l'administrateur LinuxNSSWITCH.CONF(5)
NOM
nsswitch.conf - Fichier de configuration des bases de
données systèmes et des services de noms.
DESCRIPTION
Plusieurs fonctions de la bibliothèque C doivent être con
figurées pour fonctionner correctement dans l'environ
nement 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 bib
liothèque C GNU (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 shé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 send
mail(8).
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.
network
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).
Linux 18 Mai 1998 1
NSSWITCH.CONF(5) Manuel de l'administrateur LinuxNSSWITCH.CONF(5)
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/nss
witch.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
`[NOT FOUND=return]'.
Pour la bibliothèque libc5 avec NYS, les spécifications
possibles pour le service sont `files', `nis' et `nis
plus'. Pour les noms d'hôtes, vous pouvez ajouter un ser
vice 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 bibliothèque C GNU nécessite un fichier appelé
/lib/libnss_SERVICE.so.1 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
Linux 18 Mai 1998 2
NSSWITCH.CONF(5) Manuel de l'administrateur LinuxNSSWITCH.CONF(5)
shadow acceptent le service `compat'.
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
valeurs 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 per
manente. Ceci peut indiquer que le fichier néces
saire 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 ver
rouillé, 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 ser
vice 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_reseau (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
Linux 18 Mai 1998 3
NSSWITCH.CONF(5) Manuel de l'administrateur LinuxNSSWITCH.CONF(5)
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 bib
liothèque objet partagée nommée libnss_SERVICE.so.1 se
trouvant dans /lib.
/etc/nsswitch.conf fichier de configuration
/lib/libnss_compat.so.1 la source `compat' pour la bib
liothèque C GNU 2.x
/lib/libnss_db.so.1 la source `db' pour la bib
liothèque C GNU 2.x
/lib/libnss_dns.so.1 la source `dns' pour la bib
liothèque C GNU 2.x
/lib/libnss_files.so.1 la source `files' pour la bib
liothèque C GNU 2.x
/lib/libnss_hesoid.so.1 la source `hesoid' pour la bib
liothèque C GNU 2.x
/lib/libnss_nis.so.1 la source `nis' pour la bib
liothèque C GNU 2.x
/lib/libnss_nisplus.so.1 la source `nisplus' pour la bib
liothèque C GNU 2.x
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 contin
uera à 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.
Linux 18 Mai 1998 4