Suivant: , Précédent: , Monter: Configuration système   [Table des matières][Index]


8.11 Name Service Switch

Le module (gnu system nss) fournit des liaisons pour le fichier de configuration du name service switch ou NSS de la libc (voir NSS Configuration File dans The GNU C Library Reference Manual). En résumé, NSS est un mécanisme qui permet à la libc d’être étendue avec de nouvelles méthodes de résolution de « noms » dans les bases de données du système, comme les noms d’hôtes, les noms des services, les comptes utilisateurs et bien plus (voir System Databases and Name Service Switch dans The GNU C Library Reference Manual).

La configuration de NSS spécifie, pour chaque base de données du système, quelle méthode de résolution utiliser, et comment les diverses méthodes sont enchaînées — par exemple, sous certaines circonstances, NSS devrait essayer la méthode suivante de la liste. La configuration de NSS est donnée dans le champ name-service-switch de la déclaration operating-system (voir name-service-switch).

Par exemple, la déclation ci-dessous configure NSS pour utiliser le moteur nss-mdns, qui supporte la résolution de nom d’hôte sur le DNS multicast (mDNS) pour les noms d’hôtes terminant par .local :

(name-service-switch
   (hosts (list %files    ;first, check /etc/hosts

                ;; Si ce qui précède n'a pas fonctionné, essayer
                ;; avec « mdns_minimal ».
                (name-service
                  (name "mdns_minimal")

                  ;; « mdns_minimal » fait autorité pour
                  ;; « .local ».  Lorsqu'il renvoie « pas trouvé »,
                  ;; inutile d'essayer la méthode suivante.
                  (reaction (lookup-specification
                             (not-found => return))))

                ;; Puis revenir sur DNS.
                (name-service
                  (name "dns"))

                ;; Enfin, essayer avec « mdns complet ».
                (name-service
                  (name "mdns")))))

Ne vous inquiétez pas : la variable %mdns-host-lookup-nss (voir plus bas) contient cette configuration, donc vous n’avez pas besoin de tout taper si vous voulez simplement que la résolution de nom en .local fonctionne.

Remarquez que dans ce cas, en plus de mettre en place le name-service-switch de la déclaration operating-system, vous devez aussi utiliser avahi-service-type (voir avahi-service), ou %desktop-services qui l’inclut (voir Services de bureaux). Cela rend nss-mdns accessible au démon de cache du service de nom (voir nscd-service).

Pour votre confort, les variables suivantes contiennent des configurations NSS typiques.

Variable Scheme : %default-nss

C’est la configuration NSS par défaut, un objet name-service-switch.

Variable Scheme : %mdns-host-lookup-nss

C’est la configuration NSS avec le support de la résolution de noms sur DNS multicast (mDNS) pour les noms d’hôtes en .local.

La référence pour la configuration de NSS est donnée ci-dessous. C’est une correspondance directe avec le format de fichier de la bibliothèque C, donc référez-vous au manuel de la bibliothèque C pour plus d’informations (voir NSS Configuration File dans The GNU C Library Reference Manual). Comparé au format de fichier de configuration de NSS, cette configuration a l’avantage non seulement d’ajouter ces bonnes vieilles parenthèses, mais aussi des vérifications statiques ; vous saurez s’il y a des erreurs de syntaxe et des coquilles dès que vous lancerez guix system.

Type de données : name-service-switch

C’est le type de données représentant la configuration de NSS. Chaque champ ci-dessous représente l’un des système de bases de données supportés.

aliases
ethers
group
gshadow
hosts
initgroups
netgroup
networks
password
public-key
rpc
services
shadow

Les bases de données du système gérées par NSS. Chaque champ doit être une liste d’objets <name-service> (voir plus bas).

Type de données : name-service

C’est le type de données représentant un service de noms et l’action de résolution associée.

name

Une chaîne dénotant le service de nom (voir Services in the NSS configuration dans The GNU C Library Reference Manual).

Remarquez que les services de dnoms listés ici doivent être visibles à nscd. Cela se fait en passant la liste des paquets fournissant les services de noms à l’argument #:name-services de nscd-service (voir nscd-service).

reaction

Une action spécifiée par la macro lookup-specification (voir Actions in the NSS configuration dans The GNU C Library Reference Manual). Par exemple :

(lookup-specification (unavailable => continue)
                      (success => return))

Suivant: , Précédent: , Monter: Configuration système   [Table des matières][Index]