Nächste: Initiale RAM-Disk, Vorige: X.509-Zertifikate, Nach oben: Systemkonfiguration [Inhalt][Index]
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.
Die vorgegebene Konfiguration des Name Service Switch als ein
name-service-switch
-Objekt.
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.
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).
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:
Nächste: Initiale RAM-Disk, Vorige: X.509-Zertifikate, Nach oben: Systemkonfiguration [Inhalt][Index]