Przełącznik usługi nazw — Name Service Switch

Name Service Switch ( NSS ) łączy komputer z różnych źródeł wspólnych baz danych konfiguracyjnych i mechanizmów rozpoznawania nazw. Te źródła obejmują lokalne pliki systemu operacyjnego (takie jak /etc/passwd , /etc/group i /etc/hosts ), system nazw domen (DNS), sieciową usługę informacyjną (NIS, NIS+) i LDAP .

Ten mechanizm systemu operacyjnego , używany w miliardach komputerów , w tym we wszystkich uniksopodobnych systemach operacyjnych, jest niezbędny do funkcjonowania jako część sieciowej organizacji i Internetu . Wywoływane jest między innymi za każdym razem, gdy użytkownik komputera kliknie lub wpisze adres strony internetowej w przeglądarce internetowej lub odpowie na wezwanie do hasła, aby uzyskać autoryzację dostępu do komputera i Internetu.


nsswitch.conf

Administrator zazwyczaj konfiguruje usługi nazw systemu operacyjnego za pomocą pliku /etc/nsswitch.conf . Ten plik zawiera listę baz danych (takich jak passwd , shadow i group ) oraz jedno lub więcej źródeł uzyskiwania tych informacji. Przykładami źródeł są pliki dla plików lokalnych, ldap dla Lightweight Directory Access Protocol , nis dla Network Information Service , nisplus dla NIS+ , dns dla Domain Name System (DNS) i wins dla Windows Internet Name Service .

Plik nsswitch.conf zawiera wpisy dla każdej usługi składające się z nazwy bazy danych w pierwszym polu, zakończonej dwukropkiem oraz listy możliwych źródłowych baz danych w drugim polu.

Typowy plik może wyglądać tak:

passwd:     files ldap
shadow:     files
group:      files ldap

hosts:      dns nis files

ethers:     files nis
netmasks:   files nis
networks:   files nis
protocols:  files nis
rpc:        files nis
services:   files nis

automount:  files
aliases:    files

Kolejność źródłowych baz danych określa kolejność, w jakiej NSS będzie próbował wyszukać te źródła w celu rozwiązania zapytań dla określonej usługi. Lista kryteriów w nawiasach może być określona po każdej nazwie źródła, aby określić warunki, na jakich NSS przejdzie do zapytania następnego źródła na podstawie odpowiedzi poprzedniego źródła.

Historia

Wcześniejsze systemy uniksowe albo miały dostęp tylko do plików lokalnych, albo miały zakodowane reguły dostępu do plików lub baz danych przechowywanych w sieci. Ultrix był godnym uwagi wyjątkiem z prawie identyczną funkcjonalnością pliku konfiguracyjnego NSS w /etc/svc.conf .

Firma Sun Microsystems jako pierwsza opracowała NSS dla swojego systemu operacyjnego Solaris .

Zgodność Solarisa z SVR4, który Sun Microsystems i AT&T Unix System Laboratories wspólnie opracowały poprzez połączenie UNIX System V , BSD i Xenix , wymagał, aby strony trzecie były w stanie podłączyć implementacje usługi nazw dla wybranej przez siebie warstwy transportowej ( OSI lub IP ). bez przepisywania aplikacji RPC niezależnych od transportu ( TI-RPC ) zgodnych z SVR4 lub przebudowywania systemu operacyjnego. Firma Sun wprowadziła usługę katalogową NIS+ w systemie Solaris, aby zastąpić NIS , co wymagało współistnienia dwóch usług katalogowych w przedsiębiorstwie w celu ułatwienia migracji.

Inżynierowie firmy Sun, Thomas Maslen i Sanjay Dani, byli pierwszymi, którzy zaprojektowali i wdrożyli przełącznik usługi nazw. Spełniły wymagania Solarisa ze specyfikacją pliku nsswitch.conf i wyborem implementacji, aby ładować moduły dostępu do bazy danych jako dynamicznie ładowane biblioteki , co również Sun wprowadził jako pierwszy.

Pierwotny projekt inżynierów firmy Sun dotyczący pliku konfiguracyjnego i ładowania bibliotek zaplecza usług nazw przetrwał próbę czasu w miarę rozwoju systemów operacyjnych i wprowadzania nowych usług nazewniczych. Przez lata programiści przenieśli plik konfiguracyjny NSS z niemal identycznymi implementacjami do wielu innych systemów operacyjnych, w tym FreeBSD , NetBSD , Linux , HP-UX , IRIX i AIX . Ponad dwie dekady po wynalezieniu NSS, GNU libc implementuje go niemal identycznie.

Zobacz też

Zewnętrzne linki