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.

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

[Bearbeiten | Quelltext bearbeiten]

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.

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.