9. NIS szerver beállítása

9.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                     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

helyen.

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
parancs kiadásával beüzemelnéd a gépet NIS szolgának, NIS kliensként kell beállítani

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
Ez biztosítani fogja, hogy a legtöbb NIS map frissüljö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 futtasd 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-et a /var/yp könyvtárban a map frissítéséhez.

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.

9.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 rést is tartalmaz. Tényleg nem kellene használod!

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

9.3. Az rpc.ypxfrd program

Az rpc.ypxfrd-t nagyon nagy NIS map fájlok esetén használjuk a mester és szolga NIS szerverek közötti adatátvitel gyorsí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 azt. 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 fájlokró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 fájlait, és ne kelljen újra felépíteniük a sajátjukat. Az rpc.ypxfrd RPC-alapú fájl á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.

9.4. Az rpc.yppasswdd program

Amikor a felhasználók megváltoztatják a jelszavukat, a NIS jelszó adatbázis, és feltehetőleg az összes, 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üljö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 rpc.yppasswdd démont csak a mester NIS szerveren kell elindítanod. Alapértelmezés szerint a felhasználók nem változtathatjá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ékfájlok nem az /etc könyvtárban vannak, a -D kapcsolót is használnod kell. Például ha minden forrásfájlt az /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 démont:

   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 fájlt használja, mint a /var/yp/Makefile. A hibákat a syslog naplózza.