Name Service Switch

Z Wikipedie, otevřené encyklopedie

Name Service Switch (NSS, přepínač jmenných služeb) propojuje počítač s množstvím zdrojů běžných konfiguračních databází a mechanismů jmenných služeb. K těmto zdrojům patří lokální soubory (např. /etc/passwd, /etc/group, a /etc/hosts), Domain Name System (DNS), Network Information Service (NIS, NIS+) a LDAP.

Tento mechanismus operačního systému používají miliardy počítačů včetně všech unixových operačních systémů, a jeho funkce je nepostradatelnou součástí firemních sítí mnoha organizací a internetu. Je použit například pokaždé, když uživatel počítače zadá webovou adresu, klikne na odkaz ve webovém prohlížeči nebo provede autentizaci pomocí hesla, aby získal přístup k nějakému počítači nebo službě v internetu.

Soubor nsswitch.conf[editovat | editovat zdroj]

Pro konfiguraci jmenných služeb operačního systému slouží správci systému soubor /etc/nsswitch.conf. Tento soubor obsahuje seznam typů objektů, o nichž jsou informace uloženy v různých druzích databází (např. passwd, shadow a group) s uvedením jednoho nebo více zdrojů, které je možné použít pro získání těchto informací. Jako zdroje mohou být uvedeny files pro použití lokálních souború, ldap pro použití LDAP, nis pro Network Information Service, nisplus pro NIS+, dns pro Domain Name System (DNS), a wins pro Windows Internet Naming Service.

V souboru nsswitch.conf existuje pro každou službu řádek položek, který začíná jménem databáze zakončeným dvojtečkou a pokračuje seznamem možných databázových zdrojů, např.

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

Pořadí zdrojů na každém řádku určuje pořadí, v jakém bude NSS prohledávat tyto zdroje pro získání informací dotazy pro danou službu. Za každým jménem zdroje může být uveden seznam kritérií v hranatých závorkách, který určuje podmínky, za kterých bude NSS zkoušet použít další zdroje pro vyřízení dotazu v závislosti na odezvě předchozího zdroje.

Historie[editovat | editovat zdroj]

Dřívější unixové systémy buď používaly pouze lokální soubory nebo měly v různých programech pevně zadrátovaná pravidla pro přístupu k lokálním informačním souborům a databázím přístupným po síti. Významnou výjimkou byl Ultrix používající konfigurační soubor /etc/svc.conf s téměř stejnou funkčností, jakou má NSS.

Jako první začala NSS používat firma Sun Microsystems pro svůj operační systém Solaris. Soulad systému Solaris s normou SVR4, kterou společně vyvinula firma Sun Microsystems a AT&T Unix System Laboratories sloučením systémů UNIX System V, BSD a XENIX, vyžadoval, aby třetí strany mohly přidat implementaci jmenných služeb pro transportní vrstvu podle svého výběru (s využitím protokolů OSI nebo TCP/IP), aniž by musely přepisovat aplikace využívající Transport-Independent RPC (TI-RPC) kompatibilní s SVR4 (TI-RPC) nebo přestavovat operační systém. Firma Sun implementovala do systému Solaris adresářovou službu NIS+, která nahradila starší verzi NIS, což vyžadovalo koexistenci dvou adresářových služeb v rámci podniku pro usnadnění migrace.

Jako první navrhli a implementovali přepínač jmenných služeb inženýři firmy Sun Thomas Maslen a Sanjay Dani. Pro splnění požadavků systému Solaris použili soubor nsswitch.conf a možnost načítat přístupové moduly k databázím v podobě dynamicky zaváděných knihoven, který firma Sun také zavedla jako první.

Původní návrh s konfiguračním souborem a načítáním knihoven implementujících přístup ke jmenným službám za běhu přestál zkoušku časem během dalšího vývoje operačních systémů a zavádění nových jmenných služeb. Během následujících let programátoři portovaly konfiguraci pomocí NSS souboru do mnoha jiných operačních systémů včetně FreeBSD, NetBSD, Linuxu, HP-UXu, IRIXu a AIXu. Více než dvě desetiletí po vytvoření NSS implementovala tento přístup téměř identicky knihovna GNU libc.

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Name Service Switch na anglické Wikipedii.

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]