A Linux NIS(YP)/NYS/NIS+ HOGYAN

Thorsten Kukuk

v1.0, 9 March 1999
Ez a dokumentáció elmagyarázza, hogyan kell a Linux rendszert NIS(YP) vagy NIS+ kliensként beállítani, és hogy kell NIS szerverként telepíteni.

1. Bevezetés

Egyre több Linux számítógépet telepítenek számítógép hálózat részeként. Ahhoz, hogy egyszerűsödjön a hálózati adminisztráció, a legtöbb hálózatban (leginkább a Sun alapú hálózatokban) Hálózati Információs Szolgáltatást (Network Information Service, továbbiakban NIS) futtatnak. A Linux rendszerek teljes mértékben fel tudják használni a már meglévő NIS szolgáltatásokat, és ők maguk is képesek NIS szolgáltatásokat nyújtani. Mindemellett képesek teljes értékű NIS+ kliensként viselkedni, ez a támogatás egyenlőre béta állapotban van.

Ez a dokumentáció megpróbál választ adni a NIS(YP) és NIS+ beállításával kapcsolatos kérdésekre, amik a Linux rendszereden felmerülhetnek. Ne felejtsd el elolvasni a The RPC Portmapper fejezetet!

A NIS-HOWTO-t szerkeszti, és karbantartja:

        Thorsten Kukuk, <kukuk@suse.de>

A NIS-HOWTO fordítását, a NIS-HOGYAN-t Bábos Balázs (bbk@swi.hu) készítette.

Az első NIS-HOGYAN forrása az alábbi emberektől származik, akiknek e dokumentáció első verzióit köszönhetjük:

Andrea Dell'Amico       <adellam@ZIA.ms.it>
Mitchum DSouza          <Mitch.DSouza@NetComm.IE>
Erwin Embsen            <erwin@nioz.nl>
Peter Eriksson          <peter@ifm.liu.se>

1.1 A dokumentáció új verziói

Mindig megtalálhatod a legfrissebb változatot, megnézheted a World Wide Web használatával a http://www.suse.de/~kukuk/linux/HOWTO/NIS-HOWTO.html címen.

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ások a http://www.suse.de/~kukuk/linux/nis-howto.html címen találod.

1.2 Felelősség

Habár ezt a dokumentációt a legjobb tudásom szerint állítottam össze, lehet, sőt, szinte biztos, hogy tartalmaz hibákat. Kérlek, olvass el minden OLVASSEL (README) állományt, ami ebben a dokumentációban leírtakhoz kapcsolódik, hogy még részletesebb, és pontosabb információkat szerezhess. Megpróbálom amennyire csak lehet hibátlanul tartani ezt a dokumentációt.

1.3 Visszacsatolás és javítások

Ha kérdésed, vagy megjegyzésed van ezzel a dokumentációval kapcsolatban, kérlek ne habozz levelet küldeni Thorsten Kukuk-nak a kukuk@suse.de 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 te Linux disztribúciód belső problémájáról! Nem ismerem mindegyik Linux disztribúciót, de megpróbálom hozzáadni az összes megoldást, amit küldesz.

1.4 Köszönetnyilvánítás

Szeretnénk megköszönni mindenkinek, aki közreműködött (közvetlenül, vagy közvetve) e dokumentáció létrejöttében. ABC sorrendben:

Byron A Jeff            <byron@cc.gatech.edu>
Markus Rex              <msrex@suse.de>
Miquel van Smoorenburg  <miquels@cistron.nl>

Theo de Raadt felelős az eredeti yp-kliensek kódjáért. Swen Thuemmler portolta az yp-kliensek kódját Linuxra, illetve az yp-rutinokat libc-be (szintén Theo munkájára alapozva). Thorsten Kukuk írta a NIS(YP) és NIS+ rutinokat GNU libc 2.x-re a semmiből.

2. Összefoglalás és általános információ

2.1 Kifejezések összefoglalása

Ebben a dokumentációban nagyon sok szakkifejezés található. Íme a legfontosabb szakkifejezés rövid magyarázata:

DBM

DataBase Management (Adatbázis Menedzselés), egy könyvtárnyi függvény, amelyek kulcs-tartalom párokat kezelnek egy adatbázisban.

DLL

Dynamically Linked Library (Dinamikusan Láncolt Könyvtár), futtatható programhoz futásidőben hozzákapcsolódó könyvtár.

domainname

Körzet név, egy név "kulcs", amit a NIS kliens arra használ, hogy megfelelő NIS szervert találjon, ami ezt a körzet név kulcsot szolgáltatja. Itt jegyezném meg, hogy ennek általában semmi köze sincs a gép(ek) DNS "körzet nevéhez" (gép név).

FTP

File Transfer Protocol (Állomány Átviteli Protokoll), állományok két számítógép közötti átvitelére szolgáló protokoll.

libnsl

Name services library (Név szolgáltató könyvtár), SVR4 Unixok névszolgáltatás-hívásainak (getpwnam, getservbyname, stb...) könyvtára. A GNU libc használja ezt a NIS(YP) és NIS+ függvényekhez

libsocket

Socket services library (Foglalat szolgáltatás könyvtár), SVR4 Unixok socket szolgáltatás-hívásainak (socket, bind, listen, stb...) könyvtára.

NIS

Network Information Service (Hálózati Információs Szolgáltatás), a hálózat gépei számára olyan információt kínáló szolgáltatás, amit a teljes hálózatnak ismernie kell. A Linux általános libc könyvtára támogatást nyújt a NIS használatához, amire a következőkben "hagyományos NIS"-ként fogunk hivatkozni.

NIS+

Network Information Service (Plus :-) (Hálózati Információs Szolgáltatás (Plusz :-), alapvetően NIS szteroidokkal. A NIS+-t a Sun Microsystems Inc. tervezte a NIS-t lecserélendő, hogy _nagy_ telepítések esetén biztonságosabb, és jobban kezelhető legyen.

NYS

Ez a projekt neve, és a NIS+-t, YP-t és a Switch (kapcsoló) rövidítése, Peter Eriksson <peter@ifm.liu.se> vezeti. Többek között a NYS könyvtár Name Services Switch (Név Szolgáltatás Kapcsoló) funkcionalitását használó NIS (= YP) kód teljes újra-implementálását foglalja magába.

NSS

Name Service Switch (Név Szolgáltatás Kapcsoló), A /etc/nsswitch.conf állomány határozza meg a különböző kért információ-darabok fellapozásának sorrendjét.

RPC

Remote Procedure Call (Távoli Eljárás Hívás), RPC rutinok lehetővé teszik C programok számára, hogy hálózaton keresztül más gépeken eljárásokat hívjanak meg. Amikor RPC-ről beszélünk, legtöbbször a Sun RPC változatára gondolunk.

YP

Yellow Pages(tm) (Sárga Oldalak(tm)), Az Egyesült Királysági British Telecom plc. bejegyzett védjegye.

TCP-IP

Transmission Control Protocol/Internet Protocol (Átvitelirányító Protokoll/Internet Protokoll), Unix gépeken leggyakrabban ezt az adat-kommunikációs protokollt használják.

2.2 Néhány általános információ

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 Egyesült Királysági
     British Telecom plc. bejegyzett védjegye, és tilos
     a beleegyezésük nélkül felhasználni."

A NIS a Hálózati Információs Szolgáltatás rövidítése. A célja az, hogy a hálózat gépei számára olyan információt kínáljon, amit a teljes hálózatnak ismernie kell. A NIS által szolgáltatott információk:

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. engedélyezett.

3. NIS, NYS vagy NIS+ ?

3.1 libc 4/5 hagyományos NIS-el, vagy NYS ?

A választás a "hagyományos NIS" és a NYS könyvtár NIS kódja között olyan, mint a választás a lustaság és fejlettség, vagy a rugalmasság és a kaland imádata között.

A "hagyományos NIS" kód az általános C könyvtárban található már jóideje és néha a korától és a kissé rugalmatlanságától szenved.

A NYS könyvtár NIS kódjának használatához újra kell fordítanod a libc könyvtárat, és bele kell fordítani a NYS kódot (vagy legalábbis szerezned kell valalkitől, aki már elkészítette egy előfordított libc változatot).

A másik különbdég, hogy a hagyományos NIS kód tartalmaz némi NIS Netgroups (NIS Hálózati csoportok) támogatást, szemben a NYS kóddal. Másfelől a NYS kód lehetővé teszi, hogy árnyék jelszavakat (Shadow Password) használj teljesen átlátszó módon. A "hagyományos NIS" kód nem engedélyezi NIS feletti árnyék jelszavak használatát.

3.2 glibc 2 és NIS/NIS+

Ezt mind el is felejtheted, ha az új GNU C könyvtár 2.x-et (azaz libc6) használsz. Ebben valódi NSS (név kapcsolás szolgáltatás) támogatás van, ami nagyon rugalmassá teszi, valamint a következő NIS/NIS+ térképekre is tartalmaz támogatást: aliases, ethers, group, hosts, netgroups, networks, protocols, publickey, passwd, rpc, services és shadow. A GNU C könyvtárnak nincs problémája a NIS feletti árnyék jelszavakkal.

3.3 NIS vagy NIS+ ?

A NIS és NIS+ közötti választás nagyon könnyű - használj NIS-t, ha nincs szükséged a NIS+-ra, vagy ha komoly biztonsági szükségleteid vannak. NIS+-t _sokkal_ körülményesebb adminisztrálni (nagyon könnyű kezelni a kliens oldalról, de a szerver oldalán szörnyű). Másik probléma, hogy a NIS+ linux alatti támogatása még mindig fejlesztés alatt áll - a legfrisebb glic 2.1-re lesz szükséged. Van a glibc NIS+-nek egy nemtámogatott portolása a libc5 rendszerekre, mint alternatíva.

4. Hogyan működik?

4.1 Hogyan működik a NIS?

Egy hálózaton belül legalább egy NIS szerverként működő gépnek kell lennie. Lehet több NIS szerver is, úgy, hogy mindegyik más NIS "körzetet" szolgál ki - vagy lehetnek együttműködő NIS szervereid is, ahol van egy mester NIS szerver, és a többi úgynevezett szolga NIS szerver (egy adott NIS "körzetetre" ez így is van) - vagy lehet vegyesen is...

A szolga szervereknek a NIS adatbázisról csak egy másolatuk van, és ezeket a másolatokat a mester NIS szervertől kapják amikor abban változás történt. A hálózatod gépeinek számától és a hálózatod megbízhatóságától függően választhatsz, hogy egy vagy több szolga szervert telepítesz. Amikor egy NIS szerver lekapcsolódik, vagy túl lassan válaszol a kérésekre, a NIS kliens, ami ehhez a szerverhez kapcsolódi, megpróbál egy bekapcsolt, vagy gyorsabb szervert találni.

A NIS adatbázisok úgynevezett DBM formátumban tárolódnak, amik a ASCII adatbázisból konvertálhatók. Például a /etc/passwd és a /etc/group állományok közvetlenük átalakíthatók DBM formátumba ASCII-ből-DBM-be átalakító szoftverrel ("makedbm", amit a szerver szoftveréhez csatolnak). A mester NIS szervernek egyaránt kell ASCII és DBM adatbázist tartalmaznia.

A szolga szerverek minden NIS térkép beli változásról értesülnek (az "yppush" program segítségével), és automatikusan megkapják az adatbázisok szinkronizálásához szükséges változásokat. A NIS klienseknek nem kell ezt megtenniük, hiszen ők folyamatosan a NIS szerverrel kommunkikálnak, hogy a szerverek DBM adatbázisából megszerezzék a szükséges információkat.

A régi ypbind változatok üzenetszórással keresnek futó NIS szervert. Ez nem biztonságos, mert bárki telepíthet NIS szervert, és válaszolhat az üzenetszórással érkező üzenetekre. Az ypbind újabb változatai (ypbind-3.3 vagy ypbind-mt) képesek a szervert konfigurációs állományból olvasni - tehát nincs szükség üzenetszórásra.

4.2 Hogyan működik a NIS+?

A NIS+ a Sun hálózati információs szolgáltatásának új változata. A legnagyobb különbség a NIS és NIS+ között az, hogy a NIS+ támogatja az adattitkosítást és a biztonságos RPC hitelesítést.

A NIS+ névmodellje fa struktúrán alapul. Minden levél a fában egy NIS+ objektumnak felel meg. Az objektumok hat típusa: könyvtár, bejegyzés, csoport, hivatkozás, tábla és privát.

A NIS+ névterület gyökerét alkotó NIS+ könyvtárat gyökér könyvtárnak hívják. Két különleges NIS+ könyvtár létezik: org_dir és groups_dir. Az org_dir (org=organization: szervezet, dir=directory: könyvtár) könyvtár tartalmazza az összes adminisztrációs táblát, olyanokat mint a passwd (passwd=password: jelszó), hosts (hosts: gépnevek) és a mail_aliases (mail aliases: levél álnevek). A groups_dir (groups: csoportok) könyvtár tartalmazza a hozzáférés vezérlésére szolgáló NIS+ csoport objektumokat. Az org_dir, groups_dir és a szülő könyvtárak együttesét NIS+ körzetnek nevezzük (NIS+ domain).

5. Az RPC Portmapper (Távoli Eljáráshívás kapuhozzárendelő)

A lentebb említésre kerülő programok futtatásához el kell indítanod a /usr/sbin/portmap programot. Néhány Linux disztribúció már tartalmazza a kódot e démon futtatásához a /sbin/init.d/ vagy /etc/rc.d/ könyvtárakban. Csak annyit kell tenned, hogy aktiválod és újraindítod a Linux gépedet. Olvasd el a Linux disztribúciód dokumentációját hogy ezt hogyan teheted meg.

Az RPC portmapper (portmap(8) egy RPC program számokat TCP/IP (vagy UDP/IP) protokoll port számokká alakító szerver. Ennek futnia kell ahhoz, hogy RPC hívásokat (mint amilyeneket a NIS/NIS+ kliens szoftver is ad) adhass RPC szervereknek (mint amilyen a NIS vagy NIS+ szerver) azon a gépen. Amikor egy RPC szerver elindul, megmondja a portmap-nek hogy melyik porton hallgat, és milyen RPC program számok kiszolgálására van felkészítve. Amikor egy kliens RPC hívást szeretne tenni egy adott programszámra, először kapcsolatot teremt a szerver portmap-jével, hogy megállapítsa, melyik portcímre küldje az RPC csomagokat.

Szabványosan, az általános RPC szervert az inetd(8) indítja, így a portmap-nek már az inetd indulása előtt el kell indulnia.

A biztonságos RPC-hez a portmapper-nek szüksége van az Idő szolgáltatásra (Time service). Győződj meg arról, hogy engedélyezted az Idő szolgáltatást a /etc/inetd.conf-ban minden gépre:

#
# Az Idő szolgáltatás óra egyeztetésre használatos
#
time    stream  tcp     nowait  root    internal
time    dgram   udp     wait    root    internal

FONTOS: Ne feletkezz el a konfigurációs állományok változtatása után az inetd újraindításáról!

6. Mire van szükség a NIS üzembe helyezéséhez?

6.1 Határozzuk meg, hogy Szerver, Szolga vagy Kliens vagy

Ahhoz, hogy válaszolni tudj e kérdésre, két esetet kell megvizsgálni:

  1. A géped egy már NIS szervereket tartalmazó hálózat része lesz
  2. Még nincs NIS szervered a hálózatban

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 rendszer indító állományaiból kell indítani (pl. /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 Setting up a NIS Server fejezet mutatja be, hogy hogyan kell a Linux gépedre NIS szervert telepíteni Peter Eriksson és Thorsten Kukuk "ypserv" változatával. Jegyezzük meg, hogy ez a megvalósítás a 0.14-es változattól kezdve támogatja a mester-szolga koncepciót, amiről a 4.1-es fejezetben esik szó.

Elérhető egy másik szabad NIS szerver, amit "yps"-nek hívnak, Tobias Reber írta Németországban, támogatja a mester-szolga koncepciót, de van néhány más korlátozása, és jóideje nincs rá támogatás.

6.2 A Szoftver

A NIS kliens és szerver szoftver sikeres lefordításához minden szükséges rendszerhívás megtalálható a "/usr/lib/libc.a" (version 4.4.2 és újabb) rendszerkönyvtárban, vagy a "/lib/libc.so.x" oszott könyvtárban. A GNU C Könyvtár 2-höz (glibc 2.x), a /lib/libnsl.so.1 is szükséged lesz.

Néhányan jelezték, hogy a NIS csak 4.5.21 és újabb "/usr/lib/libc.a" változatokkal működik, tehát ha biztonságosan szeretnéd használni, ne használj régebbi libc-ket. A NIS kliens szoftver beszerezhető az alábbi helyekről:

  Hely                  Könyvtár                         Állomány neve

  ftp.kernel.org        /pub/linux/utils/net/NIS         yp-tools-2.2.tar.gz
  ftp.kernel.org        /pub/linux/utils/net/NIS         ypbind-mt-1.4.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
  ftp.uni-paderborn.de  /linux/local/yp                  yp-clients-2.2.tar.gz

Amint megszerezted a szoftvert, kérlek, kövesd a szoftverrel kapott utasításokat. Az yp-clients-2.2 libc4-el és libc5-el használható 5.4.20-ig. A libc5.4.21-hez és glibc 2.x-hez yp-tools-1.4.1-re vagy újabbra lesz szükséged. Az új yp-tools-2.2-nek minden Linux libc-vel működnie kell. Mivel volt egy hiba a NIS kódban, ne használj libc-5.4.21-5.4.35 közötti változatot. Használj inkább 5.4.36-os vagy frisebb libc-t, vagy a a legtöbb YP program nem fog működni. Az ypbind 3.3 is működni fog minden könyvtárral. Ha gcc-2.8.x-et vagy nagyobbat használsz, egcs-t vagy glibc-2.x-t, hozzá kell adnod az ypbind-3.3-glibc5.diff toldást az ypbind-3.3-hoz. Kérlek, soha ne használd az yp-clients-2.2 beli ypbind-et. Az ypbind-mt egy új, többszálú démon. 2.2-es Linux kernel kell hozzá, és 2.1-es vagy újabb glibc.

6.3 Az ypbind démon

Miután sikeresen lefordítottad a szoftvert, készen állsz a telepítésére. Az ypbind démon számára megfelelő hely a /usr/sbin könyvtár. Néhányan mondhatnák, hogy nincs szükséged ypbind-re NYS-t tartalmazó rendszerben. Tévednek. ypwhich-re és ypcat-ra mindig szükség van.

Ezt természetesen root-ként kell elvégezned. A többi bináris-t (ypwhich, ypcat, yppasswd, yppoll, ypmatch) olyan könyvtárba kell tenni, ami minden felhasználó számára elérhető, általában a /usr/bin könyvtárba.

Újabb ypbind változatok /etc/yp.conf nevű konfigurációs állománnyal rendelkeznek. Bedrótozhatsz ide egy NIS szervert - további információkért nézd meg az ypbind(8) manuál oldalt. Erre az állományra a NYS esetén is szükséged van. Például:

  ypserver voyager
  ypserver defiant
  ypserver ds9

Ha a rendszer fel tudja oldani a gépneveket NIS nélül, használhatsz gépnevet, különben IP címet kell használnod. Az ypbind-3.3-ban van egy hiba, és csak a legutoldó bejegyzést használja (ypserver ds9 a példában). Minden más bejegyzést figyelmen kívül hagy. Az ypbind-mt helyesen kezeli ezt, és azt használja, amelyik először válaszol.

Jó ötlet kipróbálni az ypbind-et, mielőtt beleteszed az indító állományokba. Az ypbind kipróbálásához a következőket kell tenned:

Ettől a ponttól kezdve használhatod az olyan NIS kliens programokat, mint például az ypcat, stb... Például "ypcat passwd.byname" visszaadja neked a teljed 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 indulásához.

Ahhoz, hogy leellenőrizd, hogy a körzetnév helyes, 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 az indító démon állományokat, 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.

6.4 NIS Kliens beállítása Hagyományos NIS használatával

Gépnév feloldáshoz be kell állítanod (vagy hozzá kell adnod) a "nis"-t a feloldás sorrendjének sorához a /etc/host.conf állományban. Nézd meg a "resolv+.8" manuált a részletes leírásért.

Add hozzá a NIS kliensed /etc/passwd állományához a következő sort:

+::::::

Használhatod a + és a - karaktereket felhasználó hozzáadásához/kizárásához vagy megváltoztatásához. Ha a vendég felhasználót szeretnéd kizárni, csak add hozzá a /etc/passwd állományodhoz a -guest -et. Más parancsértelmezőt (pl. ksh) szeretnél használtatni a "linux" felhasználóval? Nem probléma, egyszerűen add hozzá a "+linux::::::/bin/ksh" (idézőjelek nélkül) sort a /etc/passwd állományodhoz. Azokat a mezőket, amelyeket nem akarsz használni, üresen kell hagyni. Használhatod a Netgroups-t felhasználó szabályozáshoz.

Például ahhoz hogy csak miquels, dth és ed, valamint a sysadmin hálózati csopotz számára engedélyezd a bejelentkezés-hozzáférést, és a többiek számára megmaradjon az azonosító, a következőket kell megadnod:

      +miquels:::::::
      +ed:::::::
      +dth:::::::
      +@sysadmins:::::::
      -ftp
      +:*::::::/etc/NoShell

Jegyezzük meg, hogy Linux rendszerben a jelszó mezőt is felül lehet bírálni ugyanúgy, ahogy ebben a példában tettük. Eltávolítottuk az "ftp" felhasználót is, tehát itt többé nem létezik, azaz az anonymous ftp nem fog többé működni.

A hálózati csoport így fog kinézni:

sysadmins (-,software,) (-,kukuk,)

FONTOS: A hálózati csoport jellemző a 4.5.26-os libc változattól kezdve használható. Ha 4.5.26-os libc-nél korábbi változatod van, minden NIS jelszó-adatbázisban szereplő felhasználó hozzáférhet a linux gépedhez, ha "ypbind"-et futtatsz!

6.5 NIS Kliens beállítása NYS használatával

Mindössze csak arra van szükséged, hogy a NIS konfigurációs állomány (/etc/yp.conf) a helyes szerver(ek)re mutasson az információkért. Ezen kívül a Név Szolgáltatás Kapcsoló konfigurációs állományát (/etc/nsswitch.conf) helyesen be kell állítani.

Az ypbind-et fel kell még telepítened. Erre nem a libc-nek, hanem a NIS(YP) tools-nak van szüksége.

Ha szeretnéd használni a felhasználók hozzáadása/kizárása jellemzőt (+/-guest/+@admins), "passwd: compat"-t és "group: compat"-t be kell az nsswitch.conf-ba tenned. Jegyezzük meg, hogy nincs "shadow: compat"! "shadow: files nis"-t kell használnod ebben az esetben.

A NYS források nem részei az 5-ös libc forrásnak. Ha a configure-t futtatod, mondj első alkalommal "NO"-t a "Values correct" kérdésre, és utána "YES"-t a "Build a NYS libc from nys".

6.6 NIS Kliens beállítása glibc 2.x segítségével

A glibc a "hagyományos NIS"-t használja, tehát el kell indítanod az ypbind-et. A Név Szolgáltatás Kapcsoló konfigurációs állományát (/etc/nsswitch.conf) helyesen be kell állítani. Ha a compat módot használod a passwd-hez, shadow-hoz vagy a group-hoz, hozzá kell adnod ezen állományok végéhez a "+"-t, és használhatod a felhasználó hozzáadás/kizárás jellemzőt. A beállítás ugyanilyen Solaris 2.x esetén is.

6.7 Az nsswitch.conf állomány

A Hálózati Szolgáltatások kapcsoló állomány (/etc/nsswitch.conf) határozza meg egy meghatározott információ csoport lekérdezésekor a feloldások sorrendjét, hasonlóan ahogy a /etc/host.conf állomány meghatározza, hogy milyen módon történjen a gépnév feloldása. Például a

    hosts: files nis dns

sor megmondja, hogy a gépnév feloldás függvény először a helyi /etc/hosts állományt nézze, majd NIS feloldás kövesse, végül a körzetnév szolgáltatáson keresztül oldja fel (/etc/resolv.conf és named). Ennél a pontnál, ha nincs találat, hibával tér vissza. Ezt az állományt minden felhasználó számára olvashatóvá kell tenni! Több információt találsz még erről a nsswitch.5, vagy a nsswitch.conf.5 manuálokban.

Egy NIS számára jó /etc/nsswitch.conf állomány például:

#
# /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                 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 állományokat
#       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

A passwd_compat, group_compat és shadow_compat csak glibc 2.x alatt támogatott. Ha nincs shadow szabály a /etc/nsswitch.conf állományban, glibc a passwd szabályt fogja alkalmazni a feloldáshoz. Van még néhány feloldó modul a glibc-hez, mint például a hesoid. Bővebb információért olvasd el a glibc dokumentációját.

6.8 Árnyék jelszavak NIS-sel

A NIS feletti árnyék jelszavak használata mindig rossz ötlet. Elveszted az árnyék által biztosított biztonságot, és csak néhány Linux C könyvtár támogatja. Egy jó módszer arra, hogy elkerüld az árnyék jelszavak használatát NIS felett, hogy csak a helyi felhasználók esetén használsz árnyék jelszót a /etc/shadow állományban. Vedd ki a NIS felhasználó bejegyzéseket az árnyék adatbázisból, és tedd vissza a jelszót a passwd állományba. Így tehát használhatod az árnyék jelszót a root bejelentkezéshez, és a hagyományos passwd-t a NIS felhasználóhoz. Ennek a módszernek megvan az az előnye, hogy minden NIS kliens esetén működni fog.

Linux

Az egyetlen Linux libc, amely támogatja az árnyék jelszavak NIS feletti használatát a GNU C 2.x könyvtár. A Linux libc5-ben nincs ehhez támogatás. A Linux libc5 engedélyezett NYS-sel lefordítva tartalmaz némi kódot hozzá. Azonban ez a kód hibásan törött néhány esetben, és nem működik minden helyesen árnyék bejegyzéssel.

Solaris

Solaris nem támogatja a NIS feletti árnyékjelszavakat.

PAM

PAM nem támogatja a NIS feletti árnyék jelszavakat, különösen a pam_pwdb/libpwdb. Ez elég nagy probléma a RedHat 5.x felhasználók számára. Ha van glibc-d és PAM-od, meg kell változtatnod a /etc/pam.d/* bejegyzéseket. Cseréld ki az összed pam_pwdb szabályt a pam_unix_* modulokban. Egy pam_unix_auth.so modul beli hiba miatt ez a modul nem mindig működik.

A /etc/pam.d/login állomány például így néz ki:

#%PAM-1.0
auth       required     /lib/security/pam_securetty.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

Az auth-hoz (hitelesítés) a pam_unix_auth.so modult, az account-hoz (azonosító) a pam_unix_acct.so modult, a password-höz (jelszó) a pam_unix_passwd.so modult és a session-höz (folyamat) a pam_unix_session.so modult kell használnod.

7. Mire van szükséged a NIS+ beállításához?

7.1 A Szoftver

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.

7.2 NIS+ kliens beállítása

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.

7.3 NIS+, keylogin, bejelentkezés és PAM

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

7.4 Az nsswitch.conf állomány

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

8. NIS szerver beállítása

8.1 Az ypserv Szerver Program

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                     Állomány neve

  ftp.kernel.org     /pub/linux/utils/net/NIS     ypserv-1.3.6.tar.gz

helyen.

Bővebb információkat találsz még a http://www.suse.de/~kukuk/linux/nis.html címen.

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. Konfigurálhatod az ypserv-et securenets állományok vagy tcp_wrapper-ek használatára. A tcp_wrapper sokkal rugalmasabb, de sokaknak nagy problémáik vannak vele, valamint néhány konfigurációs állomány memóriahiányt tud okozni. Ha problémád van a tpc_wrapper használatával lefordított ypserv-vel, fordítsd újra securenets állományok használatával. Az ypserv --version megmondja, hogy melyik verziót használod.

Ha a szerveredet mesterként futtatod, határozd meg, hogy melyik állományokat 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 állományban. Mindig célszerű megnézned, és megfelelően szerkeszteni az Opciókat 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 állomány kezelők cache-ltek. 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 állományokat. Bővebb információkért olvasd el az ypserv(8) és az ypserv.conf(5) manuál 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ásnak hasonlóan kell kinéznie 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 állományt 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. Ez azt jelenti, hogy a szolgát NIS kliensként kell beállítani, mielőtt elindíthatnád a

    % /usr/lib/yp/ypinit -s masterhost
programot, hogy beüzemeld a gépet NIS szolgának.

Nos, a szervered fennvan, és működik.

Ha nagyobb problémáid vannak, elindíthatod az ypserv és ypbind nyomkövető üzemmódban is különböző xterm-ekben. A nyomkövetés kimenetének mutatnia kell, hogy mi romlik el.

Ha map-et kell frissítened, futtasd a NIS mester szerveren a make-t a /var/yp könyvtárban. Ez frissíteni fogja a map-et, ha a forrás állomány frisebb, majd át is adja a szolga szervereknek is. Kérlek ne használd a map frissítéshez az ypinit-et.

Esetleg szeretnéd átszerkeszteni 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
Ez biztosítani fogja, hogy a legtöbb NIS map frissítődjön, még ha ki is maradt egy frissítés, ha a mester szerver frissítésekor a szolga le volt kapcsolva.

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 futtatsd a

    % /usr/lib/yp/ypinit -s masterhost
programot az új szolgán. A mester szerveren add hozzá a /var/yp/ypservers-hez az új szolga szerver nevét és futtasd a make-t a /var/yp könyvtárban, hogy frissítsed a map-et.

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 a /etc/passwd jelszó állományhoz _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
     [ A hagyományos felhasználók EZUTÁN a sor után következnek! ]
     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 a /etc/NoShell. miquels-nek rendes hozzáférése lesz.

Alternatívaként átszerkesztheted a /var/yp/Makefile állományt és beállíthatod, hogy a NIS másik jelszó forrás állományt használjon. Nagy rendszereken a NIS jelszó és csoport állományok általában a /etc/yp/ könyvtárban vannak. Ha a hagyományos eszközöket használod, hogy a passwd, chfn, adduser állományokat adminisztráld, nem fognak működni. Saját készítésű programokra lesz ehhez szükséged.

Habár az yppasswd, ypchsh és az ypchfn természetesen működni fog.

8.2 Az yps szerver program

Az "yps" NIS szerver beállításához tanulmányozd az előző fejezetet. Az "yps" szerver beállítása hasonló, _de_ nem pontosan ugyanolyan, tehát légy óvatos, mielőtt megpróbálod az "ypserv" utasításait az "yps"-re alkalmazni! Az "yps"-t nem támogatja egyik szerző sem, és néhány biztonsági lyukat is tartalmaz. Tényleg nem kellene használod!

Az "yps" NIS szerver szoftvert megtalálod az alábbi címeken:

  Hely                  Könyvtár                    Állomány 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

8.3 Az rpc.ypxfrd program

Az rpc.ypxfrd-t nagyon nagy NIS map-ek esetén használjuk a mester és szolga NIS szerverek közötti adatátvitel felgyorsítására. Ha egy NIS szolga szerver olyan üzenetet kap, hogy új map készült, elindítja az ypxfr-t, hogy letöltse a map-et. Az ypxfr elolvassa a mester szerver map-jét az yp_all() függvény segítségével. Ez a folyamat több percet is igénybe vehet, ha nagyon nagy map-ekről van szó, amit az adatbázis könyvtárban kell tárolni.

Az rpc.ypxfrd szerver úgy gyorsítja az átvitel folyamatát, hogy a NIS szolga szervereknek engedélyezi, hogy egyszerűen lemásolják a szerver map állományait, és ne kelljen újra felépíteniük a sajátjukat. Az rpc.ypxfrd RPC-alapú állomány átviteli protokollt használ, tehát nincs szükség új map építésére.

Az rpc.ypxfrd indítható az inetd-ből, azonban mivel nagyon lassan indul el, célszerű az ypserv segítségével indítani. Az rpc.ypxfrd-t csak a mester NIS szerveren kell elindítanod.

8.4 Az rpc.yppasswdd program

Amikor a felhasználók megváltoztatják a jelszavukat, a NIS jelszó adatbázis és feltehetőleg az összen ettől a NIS jelszó adatbázistól függő többi adatbázis frissítésre szorul. Az "rpc.yppasswdd" program egy olyan szerver, ami a jelszóváltozásokat kezeli, és gondoskodik arról, hogy a NIS információ helyesen frissítődjön. Az rpc.yppasswdd már az ypserv része. Nincs szükséged régi, különálló yppasswd-0.9.tar.gz-re, vagy yppasswd-0.10.tar.gz-re, és nem is javallott a továbbiakban használatuk. Az ypserv-1.3.2-beli rpc.yppasswdd teljes árnyék támogatást tartalmaz. Az yppasswd már az yp-tools-2.2.tar.gz része.

Az rpc.yppasswdd-t csak a mester NIS szerveren kell elindítanod. Alapértelmezés szerint a felhasználók nem változtathazják meg a teljes nevüket, illetve a parancsértelmezőjüket. Engedélyezheted ezek megváltoztatását a -e chfn vagy -e chsh kapcsolókkal.

Ha a jelszó vagy az árnyék állományok nem a /etc könyvtárban vannak, a -D kapcsolót is használnod kell. Például ha minden forrás állományt a /etc/yp könyvtárba tettél, és szeretnéd engedélyezni a felhasználók számára, hogy megváltoztathassák a parancsértelmezőjüket, a következő paraméterekkel kell indítanod az rpc.yppasswdd-t:

   rpc.yppasswdd -D /etc/yp -e chsh

vagy

   rpc.yppasswdd -s /etc/yp/shadow -p /etc/yp/passwd -e chsh
.

Nincs más tennivaló, már csak meg kell győződnöd róla, hogy az rpc.yppasswdd ugyanazt az állományt használja, mint a /var/yp/Makefile. A hibákat a syslog naplózza.

9. A NIS/NYS telepítésének ellenőrzése

Ha minden rendben (ahogy lennie kellene), néhány egyszerű utasítással ellenőrizheted a telepítést. Feltételezve, hogy például a jelszó állományodat a NIS adja, a

    % ypcat passwd

utasításnak vissza kell adnia a NIS jelszó állományod tartalmát. A

    % ypmatch userid passwd

utasítás (ahol a userid egy találomra választott felhasználó azonosítója) vissza kell, hogy adja a felhasználó NIS jelszó állomány beli bejegyzését. Az "ypcat" és az "ypmatch" programokat a hagyományos NIS vagy NYS disztribúciód tartalmazza.

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("felhasználó 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("parancsértelmező.: [%s]\n",pwd->pw_shell);
    }
  else
    fprintf(stderr,"A(z) \"%s\" felhasználó nem található!\n",argv[1]);

  exit(0);
}

Ezt a programot futtatva a felhasználó nevével, mint paraméterrel, kiírja mindazt az információt, amit a getpwnam függvény ad vissza erre a felhasználóra. Ennek meg kell mutatnia, hogy melyik bejegyzés hibás. A leggyakoribb probléma az, hogy a jelszó mező "*"-al felül lett írva.

A GNU C 2.1-es könyvtár (glibc 2.1) egy getent eszközzel jön. Ezt használhatod a fenti program helyett egy ilyen rendszeren. Kipróbálhatod:

   getent passwd
vagy
   getent passwd login

10. Általános problémák és NIS hibaelhárítása

Íme néhány általános, felhasználók által jelzett probléma:

  1. A 4.5.19-eshez szállított könyvtárak hibásak. NIS nem működik vele.
  2. Ha a 4.5.19-es könyvtárakat 4.5.24-re frissíted, akkor az su program megszakad. Meg kell szerezned a su programot az 1.2.0-s slackware-ből. Minő véletlen, hogy pont ugyaninnen szerezheted be a frissített könyvtárakat is.
  3. 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
            
    
    és a bejelentkezéseket megtagadja azoknak, akik a NIS adatbázisban regisztrálva vannak. Megpróbálkozhatsz root-ként bejelentkezni, és legyilkolni az ypbind-et, majd újra elindítani. Egy 3.3-as, vagy nagyobb verziószámú ypbind frissítés is segíthet.
  4. Miután a libc-t 5.4.20-asnál magasabb verziószámra frissítetted, az YP eszközök nem működnek tovább. 1.2-es, vagy frisebb yp-tools-ra lesz szükséged az 5.4.21-es, vagy frisebb libc-hez és a glibc 2.x-hez. Korábbi libc verziójú libc-hez 2.2-es yp-clients kell. Az yp-tools 2.x-nek minden könyvtárral működnie kell.
  5. a 5.4.21 - 5.4.35 számú libc-ben az yp_maplist törött, 5.4.36-es, vagy frisebb változatra van szükséged, vagy néhány YP programo, mint például az ypwhich segfault-olni fog.
  6. libc 5 hagyományos NIS-el nem támogatja a NIS feletti árnyék jelszavakat. libc5+NYS-re vagy glibc 2.x-re van szükséged.
  7. ypcat shadow nem mutatja a shadow map-et. Ez így helyes, az árnyék térkép neve shadow.byname, nem shadow.
  8. Solaris nem mindig használ privilegizált kapukat, tehát ne használj password mangling-et ha Solaris kliensed is van.

11. Gyakran Feltett Kérdések

Mostanra a legtöbb kérdésedre válasz kellett, hogy kapjál. Ha még mindig lenne megválaszolatlan kérdésed, küldj egy üzenetet a

    comp.os.linux.networking

hírcsoportba.