A NIS-HOGYANt szerkeszti, és karbantartja:
Thorsten Kukuk, <kukuk@suse.de> |
Andrea Dell'Amico <adellam@ZIA.ms.it> Mitchum DSouza <Mitch.DSouza@NetComm.IE> Erwin Embsen <erwin@nioz.nl> Peter Eriksson <peter@ifm.liu.se> |
Mindig megtalálhatod a legfrissebb változatot, megnézheted a World Wide Web használatával a http://www.linux-nis.org/nis-howto/HOWTO/NIS-HOWTO.html honlapot.
A dokumentáció új verziói több linuxos WWW és FTP helyre felkerülnek, beleértve az LDP honlapot is.
A dokumentáció fordításaira mutató hivatkozásokat a http://www.linux-nis.org/nis-howto/ honlapon találod.
Ha kérdésed, vagy megjegyzésed van ezzel a dokumentummal kapcsolatban, kérlek ne habozz levelet küldeni Thorsten Kukuknak a kukuk@linux-nis.org e-mail címre. Örömmel fogadok bármilyen ötletet vagy kritikát. Ha hibát találnál e dokumentációban, kérlek értesíts, hogy ki tudjam javítani a következő változatban. Köszönöm.
Kérlek ne küldj nekem levelet a Linux disztribúciód belső problémáiról! Nem ismerem mindegyik Linux disztribúciót, de megpróbálom hozzáadni az összes megoldást, amit küldesz.
Byron A Jeff <byron@cc.gatech.edu> Markus Rex <msrex@suse.de> Miquel van Smoorenburg <miquels@cistron.nl> Dan York <dyork@lodestar2.com> Christoffer Bromberg <christoffer@web.de> |
A magyar fordítást Bábos Balázs készítette (?). A dokumentumot Völgyi Péter frissítette (2003.02.28). A lektorálást Szilágyi Szilárd végezte el (2003.09.04). Utoljára Daczi László frissítette (2003.10.14). A dokumentum legfrissebb változata megtalálható a Magyar Linux Dokumentációs Projekt honlapján.
A következő 4 sor idézet a Sun(tm) Rendszer- és hálózati adminisztráció kézikönyvéből:
"A NIS korábban Sun Yellow Pages (YP) néven volt ismert, de a Yellow Pages(tm) az United Kingdom of British Telecom plc bejegyzett védjegye, és tilos a beleegyezésük nélkül felhasználni." |
Ha például a jelszavad bejegyzése szerepel a NIS jelszó adatbázisban, be tudsz jelentkezni a hálózat minden olyan gépére, amin fut a NIS kliens program.
A Sun a Sun Microsystems Inc. bejegyzett védjegye, amit a SunSoft Inc. számára licencelt.
# # Az idő szolgáltatás óra egyeztetésre használatos. # time stream tcp nowait root internal time dgram udp wait root internal |
FONTOS: Ne feledkezz el a konfigurációs fájlok változtatása után az inetd újraindításáról!
Ennek eldöntéséhez két esetet kell megvizsgálni:
Az első esetben csak a kliens programokra van szükséged (ypbind, ypwhich, ypcat, yppoll, ypmatch). A legfontosabb program az ypbind. Ennek a programnak állandóan futnia kell, ami azt jelenti, hogy mindig szerepelnie kell a folyamatok listájában (list of processes). Ez egy démon folyamat, és a rendszerindító fájlokból kell indítani (például /etc/init.d/nis, /sbin/init.d/ypclient, /etc/rc.d/init.d/ypbind, /etc/rc.local). Amint fut az ypbind, a géped máris NIS klienssé válik.
A második esetben, ha még nincs NIS szervered, akkor a NIS szerver programokra is szükséged lesz (általában ypserv-nek hívják). A "NIS szerver beállítása" fejezet mutatja be, hogy hogyan kell a Linux gépedre NIS szervert telepíteni, használva az ypserv démont.
Hely Könyvtár Fájl neve ftp.kernel.org /pub/linux/utils/net/NIS yp-tools-2.8.tar.gz ftp.kernel.org /pub/linux/utils/net/NIS ypbind-mt-1.13.tar.gz ftp.kernel.org /pub/linux/utils/net/NIS ypbind-3.3.tar.gz ftp.kernel.org /pub/linux/utils/net/NIS ypbind-3.3-glibc5.diff.gz |
ypserver 10.10.0.1 ypserver 10.0.100.8 ypserver 10.3.1.1 |
/bin/domainname nis.domain |
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100007 2 udp 637 ypbind 100007 2 tcp 639 ypbind |
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100007 2 udp 758 ypbind 100007 1 udp 758 ypbind 100007 2 tcp 761 ypbind 100007 1 tcp 761 ypbind |
program 100007 version 2 ready and waiting |
program 100007 version 1 ready and waiting program 100007 version 2 ready and waiting |
Ettől a ponttól kezdve használhatod az olyan NIS kliens programokat, mint például az ypcat, stb... Például az ypcat passwd.byname visszaadja neked a teljes NIS jelszó-adatbázist.
FONTOS: Ha kihagytad a tesztelő eljárást, győződj meg róla, hogy beállítottad a körzet nevét, és létrehoztad a következő könyvtárat:
/var/yp |
Ennek a könyvtárnak léteznie KELL az ypbind sikeres elindulásához.
A körzetnév helyességének ellenőrzésére használd a /bin/ypdomainname programot az yp-tools-2.2-ből. Ez az yp_get_default_domain() függvényt használja, ami sokkal szigorúbb. Nem engedélyezi például a "(semmi)" körzetnevet, ami az alapértelmezett Linux alatt, és sok probléma okozója.
Ha a teszt működik, most érdemes megváltoztatnod a démonokat indító fájlokat, hogy az ypbind a rendszer indulásakor indulhasson, és a rendszered NIS kliensként viselkedjen. Győződj meg róla, hogy a körzetnév az ypbind indítása előtt beállításra kerül!
Nos, ennyi. Indítsd újra a géped, és nézd meg a rendszerüzeneteket, hogy az ypbind elindult-e.
Add hozzá a NIS kliens az /etc/passwd fájlhoz a következő sort:
+:::::: |
+miquels::::::: +ed::::::: +dth::::::: +@sysadmins::::::: -ftp +:*::::::/etc/NoShell |
A hálózati csoport így fog kinézni:
sysadmins (-,software,) (-,kukuk,) |
Az ypbind-et fel kell még telepítened. Erre nem a libc-nek, hanem a NIS(YP) tools-nak van szüksége.
hosts: files nis dns |
Egy NIS számára használható /etc/nsswitch.conf fájl:
# # /etc/nsswitch.conf # # Egy példa Név Szolgáltatás Kapcsoló (Name Service Switch) beállítási # fájl. Ezt az fájlt úgy kell rendezni, hogy a leginkább használt # szolgáltatás kerüljön az elejére. # # A '[NOTFOUND=return]' bejegyzés azt jelenti, hogy egy bejegyzés # keresése be kell, hogy fejeződjön, ha az előző bejegyzés keresése # nem adott vissza semmit. Jegyezzük meg, hogy ha a keresés más # okból hibás (mondjuk nem válaszol NIS szerver), akkor a keresés # folytatódik a következő bejegyzéssel. # # Lehetséges bejegyzések: # # nisplus Használj NIS+ -t (NIS 3-as verzió) # nis Használj NIS-t (NIS 2-es verzió), YP-nek is |hívják # dns Használj DNS-t (Domain Name Service: Körzet |Név Szolgáltatás) # files Használd a helyi fájlokat # db Használd a /var/db adatbázist # [NOTFOUND=return] Hagyd abba a keresést, ha nem találod # passwd: compat group: compat # libc5 esetén shadow: files nis -t kell használod shadow: compat passwd_compat: nis group_compat: nis shadow_compat: nis hosts: nis files dns services: nis [NOTFOUND=return] files networks: nis [NOTFOUND=return] files protocols: nis [NOTFOUND=return] files rpc: nis [NOTFOUND=return] files ethers: nis [NOTFOUND=return] files netmasks: nis [NOTFOUND=return] files netgroup: nis bootparams: nis [NOTFOUND=return] files publickey: nis [NOTFOUND=return] files automount: files aliases: nis [NOTFOUND=return] files |
Az /etc/pam.d/login fájl például így néz ki:
#%PAM-1.0 auth requisite pam_unix2.so nullok #set_secrpc auth required pam_securetty.so auth required pam_nologin.so auth required pam_env.so auth required pam_mail.so account required pam_unix2.so password required pam_pwcheck.so nullok password required pam_unix2.so nullok use_first_pass use_authtok session required pam_unix2.so none # debug or trace session required pam_limits.so |
A NIS+ kliens szoftvert megszerezheted az alábbi címekről:
Hely Könyvtár Fájl neve ftp.gnu.org /pub/gnu/glibc glibc-2.3.2.tar.gz, glibc-linuxthreads-2.3.2.tar.gz ftp.kernel.org /pub/linux/utils/net/NIS+ nis-utils-1.4.1.tar.gz |
Nézz körül a http://www.linux-nis.org/nisplus/ webhelyen további információkért, és a legfrissebb forrásokért.
domainname nisplus.domain. nisinit -c -H <NIS+ server> |
keylogin -r |
#%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_unix2.so set_secrpc auth required /lib/security/pam_nologin.so account required /lib/security/pam_unix2.so password required /lib/security/pam_unix2.so session required /lib/security/pam_unix2.so |
hosts: files nisplus dns |
Egy használható NIS+ /etc/nsswitch.conf fájl:
# # /etc/nsswitch.conf # # Egy példa Név Szolgáltatás Kapcsoló (Name Service Switch) beállítási fájl. # Ezt a fájlt úgy kell rendezni, hogy a legtöbbször használt szolgáltatás # kerüljön az elejére. # # A '[NOTFOUND=return]' bejegyzés azt jelenti, hogy egy bejegyzés # keresése fejeződjön be, ha az előző bejegyzés keresése # nem adott vissza semmit. Jegyezzük meg, hogy ha a keresés más # okból hibás (mondjuk nem válaszol NIS szerver), akkor a keresés # folytatódik a következő bejegyzéssel. # # Lehetséges bejegyzések: # # nisplus Használj NIS+ -t (NIS 3-as verzió) # nis Használj NIS-t (NIS 2-es verzió), YP-nek is hívják # dns Használj DNS-t (Domain Name Service: Körzet Név Szolgáltatás) # files Használd a helyi fájlokat # db Használd a /var/db adatbázist # [NOTFOUND=return] Hagyd abba a keresést, ha nem találod # passwd: compat group: compat shadow: compat passwd_compat: nisplus group_compat: nisplus shadow_compat: nisplus hosts: nisplus files dns services: nisplus [NOTFOUND=return] files networks: nisplus [NOTFOUND=return] files protocols: nisplus [NOTFOUND=return] files rpc: nisplus [NOTFOUND=return] files ethers: nisplus [NOTFOUND=return] files netmasks: nisplus [NOTFOUND=return] files netgroup: nisplus bootparams: nisplus [NOTFOUND=return] files publickey: nisplus automount: files aliases: nisplus [NOTFOUND=return] files |
Ez a dokumentáció csak az "ypserv" NIS szerver beállítását tartalmazza.
A NIS szerver szoftvert megtalálod a
Hely Könyvtár Fájl neve ftp.kernel.org /pub/linux/utils/net/NIS ypserv-2.9.tar.gz ftp.kernel.org /pub/linux/utils/net/NIS ypserv-2.9.tar.bz2 |
Bővebb információkat találsz még a http://www.linux-nis.org/nis/ webhelyen.
A hagyományos NIS és a NYS szerver beállítása megegyezik.
Az ypserv és makedbm programok elkészítéséhez fordítsd le a szoftvert. Beállíthatod az ypserv-et securenets fájlok vagy tcp_wrapper-ek használatára.
Ha a szerveredet mesterként futtatod, határozd meg, hogy melyik fájlokat kell NIS-en keresztül elérhetővé tenned, és add hozzá vagy vedd ki a megfelelő bejegyzéseket az "all" szabálynál a /var/yp/Makefile fájlban. Mindig célszerű megnézned, és megfelelően szerkeszteni az Opciókat (Options) a Makefile elején.
Nagy váltás volt az ypserv 1.1 és az 1.2 között. Az 1.2-es verzió óta az fájlkezelők cache-ben tárolódnak. Ez azt jelenti, hogy ha új map-eket készítesz, mindig a -c kapcsolóval kell meghívnod a makedbm-et. Győződj meg róla, hogy az ypserv 1.2-ből, vagy újabbból származó /var/yp/Makefile-t használod, vagy add hozzá a -c kapcsolót a makedbm- hez a Makefile-ban. Ha ezt nem teszed meg, az ypserv nem fogja tovább használni a régi map-eket, és a frissítetteket sem.
Most átszerkesztheted a /var/yp/securenets és a /etc/ypserv.conf fájlokat. Bővebb információkért olvasd el az ypserv(8) és az ypserv.conf(5) kézikönyv oldalakat.
Bizonyosodj meg róla, hogy a portmapper (portmap(8)) fut, és indítsd el az ypserv szervert. A
% rpcinfo -u localhost ypserv |
utasítás kimenete hasonló lesz ehhez:
program 100004 version 1 ready and waiting program 100004 version 2 ready and waiting |
A "version 1" sor lehet, hogy hiányzik, az ypserv verziójától függően, és attól függően, hogy milyen konfigurációs fájlt használsz. Csak akkor lényeges, ha régi SunOS 4.x-es klienseket használsz.
Most készítsük el a NIS (YP) adatbázist. A mesteren futtasd a
% /usr/lib/yp/ypinit -m |
parancsot. A szolgán nézd meg, hogy működik-e az ypwhich -m. Mielőtt a
% /usr/lib/yp/ypinit -s masterhost |
Nos, a szervered kész van és működik.
Ha nagyobb problémáid vannak, elindíthatod az ypserv és ypbind programokat nyomkövető üzemmódban is, különböző xterm-ekben. A nyomkövetés kimenetének mutatnia kell, hogy mi működik rosszul.
Ha map-et kell frissítened, futtasd a NIS mester szerveren a make-et a /var/yp könyvtárban. Ez frissíteni fogja a map-et, ha a forrásfájl frissebb, majd át is adja a szolga szervereknek is. Kérlek ne használd a map frissítéshez az /var/yp-et.
Esetleg átszerkesztheted a root crontabját *a szolga* szerveren és hozzáadni a következő sorokat:
20 * * * * /usr/lib/yp/ypxfr_1perhour 40 6 * * * /usr/lib/yp/ypxfr_1perday 55 6,18 * * * /usr/lib/yp/ypxfr_2perday |
A későbbiekben bármikor hozzáadhatsz új szolgát. Először biztosítsd, hogy az új szolga szervernek legyen jogosultsága a NIS mester szerverhez kapcsolódni, majd futtasd a
% /usr/lib/yp/ypinit -s masterhost |
Ha korlátozni szeretnéd a felhasználók hozzáférését a NIS szerveredhez, a NIS szerveredet kliensként is üzemeltetned kell úgy, hogy elindítod az ypbind-et, és hozzáadod az /etc/passwd jelszó fájlhoz _félúton_ a plusz bejegyzéseket. A könyvtár függvények figyelmen kívül hagyják a hagyományos bejegyzéseket az első NIS bejegyzés után és a többit NIS-en keresztül szerzik meg. Így a NIS hozzáférés-szabályok karbantartottak. Például:
root:x:0:0:root:/root:/bin/bash daemon:*:1:1:daemon:/usr/sbin: bin:*:2:2:bin:/bin: sys:*:3:3:sys:/dev: sync:*:4:100:sync:/bin:/bin/sync games:*:5:100:games:/usr/games: man:*:6:100:man:/var/catman: lp:*:7:7:lp:/var/spool/lpd: mail:*:8:8:mail:/var/spool/mail: news:*:9:9:news:/var/spool/news: uucp:*:10:50:uucp:/var/spool/uucp: nobody:*:65534:65534:noone at all,,,,:/dev/null: +miquels:::::: +:*:::::/etc/NoShell [ All normal users AFTER this line! ] tester:*:299:10:Just a test account:/tmp: miquels:1234567890123:101:10:Miquel van Smoorenburg:/home/miquels:/bin/zsh |
Bár a "tester" felhasználó létezik, a parancsértelmezője azonban az /etc/NoShell. miquels-nek rendes hozzáférése lesz.
Alternatívaként átszerkesztheted a /var/yp/Makefile fájlt és beállíthatod, hogy a NIS másik jelszó forrás fájlt használjon. Nagy rendszereken a NIS jelszó és csoport fájlok általában az /etc/yp/ könyvtárban vannak. Ha a hagyományos eszközöket nem használhatók a passwd, chfn, adduser fájlokat adminisztrálására. Ehhez saját készítésű programokra lesz szükséged.
Habár az yppasswd, ypchsh és az ypchfn természetesen működni fog.
Az "yps" NIS szerver szoftvert megtalálod az alábbi címeken:
Hely Könyvtár Fájl neve ftp.lysator.liu.se /pub/NYS/servers yps-0.21.tar.gz ftp.kernel.org /pub/linux/utils/net/NIS yps-0.21.tar.gz |
rpc.yppasswdd -D /etc/yp -e chsh |
rpc.yppasswdd -s /etc/yp/shadow -p /etc/yp/passwd -e chsh |
% ypcat passwd |
utasításnak vissza kell adnia a NIS jelszófájlod tartalmát. A
% ypmatch userid passwd |
Ha egy felhasználó nem tud bejelentkezni, indítsd el a következő programot a kliensen:
#include <stdio.h> #include <pwd.h> #include <sys/types.h> int main(int argc, char *argv[]) { struct passwd *pwd; if(argc != 2) { fprintf(stderr,"Használat: getwpnam felhasználónév\n"); exit(1); } pwd=getpwnam(argv[1]); if(pwd != NULL) { printf("név......: [%s]\n",pwd->pw_name); printf("jelszó...: [%s]\n",pwd->pw_passwd); printf("felh. id.: [%d]\n", pwd->pw_uid); printf("csoport id: [%d]\n",pwd->pw_gid); printf("gecos....: [%s]\n",pwd->pw_gecos); printf("könyvtár.: [%s]\n",pwd->pw_dir); printf("shell....: [%s]\n",pwd->pw_shell); } else fprintf(stderr,"Az \"%s\" felhasználó nem található!\n",argv[1]); exit(0); } |
getent passwd |
getent passwd login |
% /usr/lib/yp/ypinit -m |
Ha eltávolítasz egy térkép bejegyzést, a hozzá tartozó fájlokat is törölnöd kell.
A változtatások után már csak a
% make -C /var/yp |
DBLOAD = $(YPBINDIR)/makedbm -c -m `$(YPBINDIR)/yphelper --hostname` --no-limit-check |
1. A bejegyzést több sorban helyezzük el úgy, hogy minden csoport egymástól kissé eltérő nevekkel szerepeljen. 2. A GID maradjon ugyanaz minden csoportnál 3. Legyen az első bejegyzés a jó csoportnév és GID (Én nem teszek felhasználónevet ide) Amikor aztán a program felhasználó szerint haladva elolvassa a GID-et, majd visszafelé haladva megáll az első egyező GID-nél és beolvassa a hozzá tartozó felhasználónevet. Ronda, de működik! |
/etc/defaultdomain |
fájlban kell tárolni. A legtöbb Linux disztribúció nem használja ezt a fájlt.
A Caldera az /etc/nis.conf fájlt használja, formátuma a normál /etc/yp.conf-val megegyező.
Az /etc/sysconfig/network fájlban található NISDOMAIN változóval állíthatjuk be a körzetnevet.
Webhely Könyvtár Fájl neve ftp.kernel.org /pub/linux/utils/net/NIS pwdutils-2.3.tar.gz ftp.suse.com /pub/people/kukuk/pam/pam_pwcheck pam_pwcheck-2.2.tar.bz2 ftp.suse.com /pub/people/kukuk/pam/pam_unix2 pam_unix2-1.16.tar.bz2 |
openssl req -new -x509 -nodes -days 730 -out /etc/rpasswdd.pem -keyout /etc/rpasswdd.pem |
#%PAM-1.0 auth required pam_unix2.so account required pam_unix2.so password required pam_pwcheck.so password required pam_unix2.so use_first_pass use_authtok password required pam_make.so /var/yp session required pam_unix2.so |
#%PAM-1.0 auth required pam_unix2.so account required pam_unix2.so password required pam_pwcheck.so nisdir=/etc/yp password required pam_unix2.so nisdir=/etc/yp use_first_pass use_authtok password required pam_make.so /var/yp session required pam_unix2.so |
# az rpasswdd az master.example.com gépen fut server master.example.com # Port 774 az alapértelmezett port 774 |
Íme néhány általános, felhasználók által jelzett probléma:
A 4.5.19-eshez szállított programkönyvtárak hibásak. A NIS nem működik vele.
Amikor egy NIS szervert lekapcsolnak, majd újra bekapcsolnak, az ypbind a következő üzenettel indul:
yp_match: clnt_call: RPC: Unable to receive; errno = Connection refused |