A Linux NIS+ kliens kódot a GNU C 2-es könyvtárhoz fejlesztették ki. Vagy Linux libc5-höz is egy változat, hiszen a legtöbb kereskedelmi alkalmazást ehhez a könyvtárhoz láncolják és nem tudod őket glibc használatához újrafordítani. Problémák vannak a libc5 és NIS együttes használatában: statikus programokat nem lehet hozzáláncolni, és az e könyvtárhoz láncolt programok nem fognak más libc5 változatokkal működni.
Meg kell szerezned, és le kell fordítanod a GNU C 2.1-es könyvtárat az Indel alapú platformokra, a GNU C 2.1.1-es könyvtárat a 64 bites platformokra. Mint bázis rendszer, szükséged lesz egy glibc alapú disztribúcióra, mint például a Debian 2.x, RedHat 5.x, vagy SuSE Linux 6.x.
Minden disztribúcióhoz újra kell fordítanod a gcc/g++ fordítót, libstdc++ -t és az ncurses-t. RedHat-nél sok változtatást kell eszközölni a PAM konfigurációban. SuSE Linux 6.0-nál újra kell fordítani a shadow csomagot.
A NIS+ kliens szoftvert megszerezheted az alábbi címekről:
Hely Könyvtár Állomány neve
ftp.funet.fi /pub/gnu/funet libc-*, glibc-crypt-*,
glibc-linuxthreads-*
ftp.kernel.org /pub/linux/utils/net/NIS+ nis-utils-19990223.tar.gz
ftp.kernel.org /pub/linux/utils/net/NIS+ pam_keylogin-1.2.tar.gz
glibc alapú disztribúciókat találhatsz az alábbi helyeken:
Hely Könyvtár
ftp.debian.org /pub/debian/dists/slink
ftp.redhat.com /pub/redhat/redhat-5.2
ftp.suse.de /pub/SuSE-Linux/6.0
A GNU C könyvtár lefordításához kérlek, kövesd a szoftverhez kapott utasításokat. A javított, NYS-re épülő libc5-öt és a forrást, mint a hagyományos libc5 kiegészítését megtalálod az alábbi helyeken:
Hely Könyvtár Állomány neve
ftp.kernel.org /pub/linux/utils/net/NIS+ libc-5.4.44-nsl-0.4.10.tar.gz
Nézz körül a http://www.suse.de/~kukuk/linux/nisplus.html helyeken bővebb információkért, és a legfrisebb forrásokért.
FONTOS: NIS+ kliens beállításához olvasd el a Solaris NIS+ dokumentációkat, hogy mit kell tenni a szerver oldalán! Ez a dokumentáció csak a kliens oldali teendőket írja le!
Miután feltelepítetted az új libc-t és nis-eszközöket, elkészítheted az új kliens megbízólevelét a NIS+ szerveren. Győződj meg róla, hogy a portmap fut. Ezután ellenőrizd, hogy a Linux PC-d ideje megegyezik a NIS+ szerverével. A biztonságos RPC legfeljebb 3 perces ablak áll rendelkezésre, amíg a megbízólevelek érvényesek. Jó ötlet minden gépen az xntpd futtatása. Mindezek után futtasd a következőket:
domainname nisplus.domain.
nisinit -c -H <NIS+ server>
hogy inicializáld a hideg indító állományokat. Olvasd el az nisinit manuált a többi lehetőségért. Győződj meg róla, hogy a körzetnév minden újraindítás után beállítódik-e. Ha nem tudod, hogy mi a hálózatod NIS+ körzetneve, kérdezd meg a redszergazdát/hálózati adminisztrátort.
Most célszerű megváltoztatnod a /etc/nsswitch.conf állományt. Bizonyosodj meg arról, hogy a publickey szolgáltatás utáni egyetlen szolgáltatás a nisplus ("publickey: nisplus"), és semmi más!
Ezután indítsd el a keyserv-et, és nézd meg, hogy minden induláskor ez az első elinduló démon a portmap után. Futtasd a
keylogin -r
parancsot, hogy eltárold a rendszered root titkos kulcsát. (Remélem hozzáadtad
az új gép publickey-ét a NIS+ szerverhen?).
A "niscat passwd.org_dir" parancsnak mostanra meg kell mutatnia a passwd adatbázisod összes bejegyzését.
Amikor a felhasználó bejelentkezik, meg kell adnia a titkos kulcsát a keyserv-nek. Ezt a "keylogin" parancs hívásával teszi meg. Az árnyék csomagban lévő login megteszi ezt a felhasználónak, ha glibc-2.1-el volt lefordítva. A PAM alapú bejelentkezéshez fel kell telepíteni a pam_keylogin-1.2.tar.gz-t, ls meg kell változtatni a /etc/pam.d/login állományt úgy, hogy a pam_unix_auth-ot használja, ne a pwdb-t, ami nem támogatja a NIS+ -t. Például:
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_keylogin.so
auth required /lib/security/pam_unix_auth.so
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_unix_passwd.so
session required /lib/security/pam_unix_session.so
A Hálózati Szolgáltatások kapcsoló állomány (/etc/nsswitch.conf) megadja, hogy milyen sorrendben történjenek a kérés-feloldások, ha egy bizonyos információkérés történt, hasonlóan ahogy a /etc/host.conf állomány megadja az utat a gépnév feloldáshoz. Például a
hosts: files nisplus dns
sor megadja, hogy a gépnév feloldó függvény először a helyi /etc/hosts állományt nézze, amit egy NIS+ feloldás kövessen, végül a körzetnév szolgáltatást kérdezze (/etc/resolv.conf és named), ami után ha nincs találat, akkor hibával tér vissza.
Egy jó NIS+ /etc/nsswitch.conf állomány:
#
# /etc/nsswitch.conf
#
# Egy példa Név Szolgáltatás Kapcsoló konfigurációs állomány. Ezt az
# állományt ú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 Use NIS+ (NIS version 3)
# nis Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# db Use the /var/db databases
# [NOTFOUND=return] Stop searching if not found so far
#
passwd: compat
# libc5-höz: passwd: files nisplus
group: compat
# libc5-höz: group: files nisplus
shadow: compat
# libc5-höz: shadow: files nisplus
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