Name Service Switch
Der Name Service Switch (NSS) steht für eine Schnittstelle aus Software zur Kombination grundlegend verschiedener Datenquellen durch Module.
In unixartigen Betriebssystemen erlaubt der NSS die Konfiguration verschiedener Datenquellen für das Auflösen von Konfigurationsdaten (u. a. Hosts, Benutzer und Gruppen). Es ist möglich, die lokalen Konfigurationsdateien (zum Beispiel /etc/passwd, /etc/group,...) um Datenbanken (wie z. B. LDAP, MySQL) zu ergänzen.
Funktionsweise
Ein Systemadministrator konfiguriert normalerweise NSS mit Hilfe der Datei /etc/nsswitch.conf. Die Datei listet für Konfigurationsressourcen (passwd für Benutzer, group für Gruppen,...) die entsprechenden Datenquellen auf. Beim Ausführen einer Suchanfrage ist die Reihenfolge der dahinter angegebenen Datenquellen entscheidend. Eine Konfiguration könnte so aussehen:
passwd: files ldap shadow: files ldap group: files ldap hosts: files ldap
Implementierung in die C-Bibliothek
NSS ist in der Standard C Library implementiert, so dass Funktionen wie getpwent oder getgrent die entsprechenden Funktionen im NSS-Modul aufrufen. Durch die Änderung auf Basis der Bibliothek können existierende Programme ohne Änderung mit NSS zusammenarbeiten.
Geschichte
Frühere unixartige Systeme konnten entweder nur Konfigurationsdateien oder fest codierte Regeln zur Auflösung von Konfigurationsabfragen nutzen. Nur Ultrix lieferte durch Benutzung der Konfigurationsdatei /etc/svc.conf eine nahezu identische Funktionalität wie NSS.
Sun Microsystems entwickelte NSS für ihr Betriebssystem Solaris, aber nach und nach portierten Programmierer NSS für eine Vielzahl weiterer Betriebssysteme wie FreeBSD, NetBSD, Linux, HP-UX, IRIX und AIX.