NIS znamená Network Information Service.
NIS se také nazývá YP. YP znamená Zlaté stránky.
NIS je vyhledávací služba pro sadu databází. Databáze v tomto případě mohou být soubor passwd, soubor skupiny, soubor hostitelů atd. Primárně se používá jako centrální úložiště pro uchování všech uživatelských jmen a hesel (např. /etc/passwd) a různé servery se mohou proti tomuto serveru autentizovat. uživatelské jméno a heslo.
To je velmi užitečné pro systémové administrátory, kteří musí spravovat několik serverů. Namísto vytváření uživatelských účtů pro vaše uživatele na všech serverech Linux můžete účet vytvořit pouze na jednom serveru, který je nakonfigurován ke spuštění serveru NIS. Všechny ostatní servery lze nakonfigurovat jako klient NIS, který se bude ověřovat vůči tomuto centrálnímu úložišti serveru NIS.
Toto je podrobný návod, který vysvětluje instalaci a konfiguraci serveru a klienta ypserv NIS.
YPServ je zkratka pro Yellow Pages Server.
Pokud je server NIS již nakonfigurován a vy se právě pokoušíte připojit server Linux ke stávajícímu serveru NIS, přejděte k části „Configre NIS Client“ níže.
Pokud instalujete a konfigurujete NIS server i klienta, začněte od 1. kroku níže.
Konfigurace serveru NIS
1. Ověřte Portmap
Portmap server mapuje port DARPA na číslo programu RPC. Pro klienta NIS, který volá RPC pro komunikaci se serverem NIS (což je server RPC), by měl být spuštěn portmapper.
Když se NIS server spustí, informuje portmapper, na kterém portu naslouchá. Když klient NIS kontaktuje server NIS, nejprve to zkontroluje u mapovače portů a získá číslo portu, na kterém běží servery NIS, a odešle volání RPC na toto číslo portu.
Na většině distribucí Linuxu bude portmap běžet ve výchozím nastavení. Ujistěte se, že je spuštěn a nakonfigurován tak, aby se spustil při restartu systému.
# ps -ef | grep -i portmap rpc 3624 1 0 Feb23 ? 00:00:00 portmap root 16908 8658 0 10:35 pts/0 00:00:00 grep -i portmap # chkconfig --list | grep portmap portmap 0:off 1:off 2:off 3:on 4:on 5:on 6:off
2. Nainstalujte YPServ
Nainstalujte ypserv na svůj server pomocí typických instalačních metod pro vaši příslušnou linuxovou distribuci (například:apt-get nebo yum nebo up2date atd.).
Pokud jej chcete nainstalovat ze zdroje, stáhněte si zdroj ypserv.
V systému redhat identifikujte ypserv RPM z instalačního CD a nainstalujte jej, jak je uvedeno níže, pomocí rpm.
# rpm -ivh ypserv-2.19-5.el5.i386.rpm Preparing... ########################################### [100%] 1:ypserv ########################################### [100%]
ypserv bude nainstalován pod /usr/sbin/ypserv
# whereis ypserv ypserv: /usr/sbin/ypserv /etc/ypserv.conf /usr/share/man/man8/ypserv.8.gz
3. Spusťte ypserv
Zkontrolujte, zda je ypserv registrován s mapou portů, jak je uvedeno níže.
# rpcinfo -u localhost ypserv rpcinfo: RPC: Program not registered program 100004 is not available
Výše uvedený výstup indikuje, že buď ypserv není nainstalován, nebo je ypserv nainstalován, ale ještě není spuštěn. Následující rychlá kontrola ukazuje, že ypserv ještě není spuštěn.
# chkconfig --list | grep yp ypbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off yppasswdd 0:off 1:off 2:off 3:off 4:off 5:off 6:off ypserv 0:off 1:off 2:off 3:off 4:off 5:off 6:off ypxfrd 0:off 1:off 2:off 3:off 4:off 5:off 6:off # service ypserv status ypserv is stopped
Nastavte NISDOMAIN v souboru /etc/sysconfig/network, jak je uvedeno níže.
# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=prod-db GATEWAY=192.168.1.1 NISDOMAIN=thegeekstuff.com
Spusťte ypserv, jak je znázorněno níže.
# service ypserv start Setting NIS domain name thegeekstuff.com: [ OK ] Starting YP server services: [ OK ]
V souboru /etc/ypserv.conf jsou nastaveny některé konfigurační parametry serveru NIS. Výchozí hodnoty v tomto souboru však nemusíte upravovat.
4. Vygenerovat databázi NIS
Jakmile je ypserv nainstalován a spuštěn, je čas vygenerovat databázi NIS. Veškerá databáze NIS je uložena v adresáři /var/yp. Před vygenerováním databáze neuvidíte adresář pro název vaší domény pod /var/yp.
# ls -l /var/yp total 36 drwxr-xr-x 2 root root 4096 May 18 2010 binding -rw-r--r-- 1 root root 16669 Oct 31 2008 Makefile -rw-r--r-- 1 root root 185 Jun 6 2007 nicknames
Vygenerujte databázi NIS pomocí programu ypinit, jak je znázorněno níže. Pro vygenerování databáze stačí zadat název hostitele vašeho serveru NIS.
# /usr/lib/yp/ypinit -m Please continue to add the names for the other hosts, one per line. When you are done with the list, type a . next host to add: prod-db next host to add: The current list of NIS servers looks like this: prod-db Is this correct? [y/n: y] y We need a few minutes to build the databases... Building /var/yp/thegeekstuff.com/ypservers... Running /var/yp/Makefile... gmake[1]: Entering directory `/var/yp/thegeekstuff.com' Updating passwd.byname... Updating passwd.byuid... Updating group.byname... Updating group.bygid... Updating hosts.byname... Updating hosts.byaddr... ... gmake[1]: Leaving directory `/var/yp/thegeekstuff.com' prod-db has been set up as a NIS master server. Now you can run ypinit -s prod-db on all slave server.
Po vygenerování databáze můžete vidět vytvoření nového adresáře pro vaši doménu pod /var/yp, jak je uvedeno níže.
# ls -l /var/yp total 44 drwxr-xr-x 2 root root 4096 Oct 8 10:59 thegeekstuff.com drwxr-xr-x 2 root root 4096 May 18 2010 binding -rw-r--r-- 1 root root 16669 Oct 31 2008 Makefile -rw-r--r-- 1 root root 185 Jun 6 2007 nicknames -rw-r--r-- 1 root root 10 Aug 31 10:58 ypservers
/var/yp/ypservers bude obsahovat název hostitele vašeho serveru NIS.
# cat /var/yp/ypservers prod-db
5. Ověřte instalaci
Ověřte instalaci serveru NIS kontrolou, zda lze k souboru passwd přistupovat pomocí klientského programu ypcat NIS.
# ypcat passwd No such map passwd.byname. Reason: Can't bind to server which serves this domain
Výše uvedená chybová zpráva se může zobrazit, protože ypbind nemusí ve vašem systému běžet. Stačí spustit ypbind a ověřit konfiguraci.
# service ypbind start # ypcat passwd ramesh:R7EFEGJ1mxRGwVLVC.:401:401::/home/ramesh:/bin/bash john:QtlRW$Fx.uZvD:402:402::/home/john:/bin/bash
Pokud nechcete zobrazovat zašifrované pole passwd ve výstupu ypcat passwd, nastavte MERGE_PASSWD na hodnotu false v souboru /var/yp/Makefile, jak je uvedeno níže.
# vi /var/yp/Makefile MERGE_PASSWD=false
Poté, co provedete výše uvedené, příkaz ypcat passwd zobrazí pouze „x“ v souboru passwd.
# ypcat passwd ramesh:x:401:401::/home/ramesh:/bin/bash john:x:402:402::/home/john:/bin/bash
Kdykoli provedete změnu (buď aktualizace souboru Makefile nebo změny databáze). Když například přidáte nového uživatele nebo upravíte stávající uživatelský účet, měli byste provést následující. Bez toho se změny neprojeví na žádném z vašich klientů NIS.
# cd /var/yp # make
Doporučuji, abyste to přidali do úlohy root cron na vašem serveru NIS a spouštěli to každých 15 minut. Tímto způsobem se nemusíte starat o to, abyste toto spouštěli ručně, kdykoli provedete nějaké změny v databázi NIS.
Konfigurace klienta NIS
Na klientovi NIS je třeba provést následující kroky. Ve výše uvedeném příkladu jsme nainstalovali server NIS na název serveru s názvem prod-db. Pokud chcete, aby jiný linuxový server dev-db používal k ověřování soubor /etc/passwd na prod-db, musíte na serveru dev-db (klient NIS) provést následující kroky.
6. Nastavte název domény na klientovi
Ověřte, zda je název domény na tomto serveru správně nastaven. Pokud to nevrátí správný název domény. Spusťte „název_domény {vaše-doména}“ a nastavte název domény na serveru.
# domainname thegeekstuff.com
domainname příkaz dočasně nastaví název domény. tj. pokud restartujete systém, název domény bude pryč. Chcete-li, aby název domény byl trvalý, aktualizujte síťový soubor a nastavte parametr NISDOMAIN, jak je uvedeno níže.
# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=dev-db GATEWAY=192.168.1.4 NISDOMAIN=thegeekstuff.com
7. Nastavte název serveru NIS u klienta
Přidejte následující řádek do souboru /etc/yp.conf. To klientovi NIS sdělí, že server NIS je prod-db. Místo prod-db níže můžete také zadat ip-adresu serveru prod-db.
# vi /etc/yp.conf domain thegeekstuff.com server prod-db
8. Spusťte ypbind na Klientovi
ypbind je závazný program NIS. Toto vyhledá server NIS pro vaši doménu NIS a udržuje informace o vazbě NIS.
Ujistěte se, že je ypbind spuštěn a spuštěn na klientském serveru NIS. Většina distribucí Linuxu má již nainstalovaný ypbind. Pokud neběží, spusťte jej.
# ps -ef | grep ypbind # service ypbind start
Ověřte instalaci serveru NIS kontrolou, zda lze k souboru passwd přistupovat pomocí klientského programu ypcat NIS.
# ypcat passwd No such map passwd.byname. Reason: Can't bind to server which serves this domain
Výše uvedená chybová zpráva se může zobrazit, protože ypbind nemusí ve vašem systému běžet. Stačí spustit ypbind a ověřit konfiguraci.
# service ypbind start # ypcat passwd ramesh:x.:401:401::/home/ramesh:/bin/bash john:x:402:402::/home/john:/bin/bash