Nächste: , Vorige: , Nach oben: Systemkonfiguration   [Inhalt][Index]


12.12 Name Service Switch

Das Modul (gnu system nss) enthält Anbindungen für die Konfiguration des Name Service Switch (NSS) der libc (siehe NSS Configuration File in Referenzhandbuch der GNU-C-Bibliothek). Kurz gesagt ist der NSS ein Mechanismus, mit dem die libc um neue „Namens“-Auflösungsmethoden für Systemdatenbanken erweitert werden kann; dazu gehören Rechnernamen (auch bekannt als „Host“-Namen), Dienstnamen, Benutzerkonten und mehr (siehe Systemdatenbanken und der Name Service Switch in Referenzhandbuch der GNU-C-Bibliothek).

Die NSS-Konfiguration legt für jede Systemdatenbank fest, mit welcher Methode der Name nachgeschlagen („aufgelöst“) werden kann und welche Methoden zusammenhängen – z.B. unter welchen Umständen der NSS es mit der nächsten Methode auf seiner Liste versuchen sollte. Die NSS-Konfiguration wird im Feld name-service-switch von operating-system-Deklarationen angegeben (siehe name-service-switch).

Zum Beispiel konfigurieren die folgenden Deklarationen den NSS so, dass er das nss-mdns-Backend benutzt, wodurch er auf .local endende Rechnernamen über Multicast-DNS (mDNS) auflöst:

(name-service-switch
   (hosts (list %files    ;zuerst in /etc/hosts nachschlagen

                ;; Wenn das keinen Erfolg hatte, es
                ;; mit 'mdns_minimal' versuchen.
                (name-service
                  (name "mdns_minimal")

                  ;; 'mdns_minimal' ist die Autorität für
                  ;; '.local'. Gibt es not-found ("nicht
                  ;; gefunden") zurück, müssen wir die
                  ;; nächsten Methoden gar nicht erst
                  ;; versuchen.
                  (reaction (lookup-specification
                             (not-found => return))))

                ;; Ansonsten benutzen wir DNS.
                (name-service
                  (name "dns"))

                ;; Ein letzter Versuch mit dem
                ;; "vollständigen" 'mdns'.
                (name-service
                  (name "mdns")))))

Keine Sorge: Die Variable %mdns-host-lookup-nss (siehe unten) enthält diese Konfiguration bereits. Statt das alles selst einzutippen, können Sie sie benutzen, wenn alles, was Sie möchten, eine funktionierende Namensauflösung für .local-Rechner ist.

Beachten Sie dabei, dass es zusätzlich zum Festlegen des name-service-switch in der operating-system-Deklaration auch erforderlich ist, den avahi-service-type zu benutzen (siehe avahi-service-type). Es genügt auch, wenn Sie die %desktop-services benutzen, weil er darin enthalten ist (siehe Desktop-Dienste). Dadurch wird nss-mdns für den Name Service Cache Daemon nutzbar (siehe nscd-service).

Um sich eine lange Konfiguration zu ersparen, können Sie auch einfach die folgenden Variablen für typische NSS-Konfigurationen benutzen.

Scheme-Variable: %default-nss

Die vorgegebene Konfiguration des Name Service Switch als ein name-service-switch-Objekt.

Scheme-Variable: %mdns-host-lookup-nss

Die Name-Service-Switch-Konfiguration mit Unterstützung für Rechnernamensauflösung über „Multicast DNS“ (mDNS) für auf .local endende Rechnernamen.

Im Folgenden finden Sie eine Referenz, wie eine Name-Service-Switch-Konfiguration aussehen muss. Sie hat eine direkte Entsprechung zum Konfigurationsdateiformat der C-Bibliothek, lesen Sie weitere Informationen also bitte im Handbuch der C-Bibliothek nach (siehe NSS Configuration File in Referenzhandbuch der GNU-C-Bibliothek). Gegenüber dem Konfigurationsdateiformat des libc-NSS bekommen Sie mit unserer Syntax nicht nur ein warm umklammerndes Gefühl, sondern auch eine statische Analyse: Wenn Sie Syntax- und Schreibfehler machen, werden Sie darüber benachrichtigt, sobald Sie guix system aufrufen.

Datentyp: name-service-switch

Der Datentyp, der die Konfiguration des Name Service Switch (NSS) der libc repräsentiert. Jedes im Folgenden aufgeführte Feld repräsentiert eine der unterstützten Systemdatenbanken.

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

Das sind die Systemdatenbanken, um die sich NSS kümmern kann. Jedes dieser Felder muss eine Liste aus <name-service>-Objekten sein (siehe unten).

Datentyp: name-service

Der einen eigentlichen Namensdienst repräsentierende Datentyp zusammen mit der zugehörigen Auflösungsaktion.

name

Eine Zeichenkette, die den Namensdienst bezeichnet (siehe Services in the NSS configuration in Referenzhandbuch der GNU-C-Bibliothek).

Beachten Sie, dass hier aufgeführte Namensdienste für den nscd sichtbar sein müssen. Dazu übergeben Sie im Argument #:name-services des nscd-service die Liste der Pakete, die die entsprechenden Namensdienste anbieten (siehe nscd-service).

reaction

Eine mit Hilfe des Makros lookup-specification angegebene Aktion (siehe Actions in the NSS configuration in Referenzhandbuch der GNU-C-Bibliothek). Zum Beispiel:

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

Nächste: Initiale RAM-Disk, Vorige: X.509-Zertifikate, Nach oben: Systemkonfiguration   [Inhalt][Index]