Next Previous Contents

8. Sette opp en NIS Server

8.1 Server programmet ypserv

Dette dokumentet beskriver bare hvordan man setter opp en "ypserv" NIS server.

NIS server programvaren kan hentes fra:

  Server             Katalog                      Filnavn

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

Du kan også se på http://www.suse.de/~kukuk/linux/nis.html for mere informasjon.

Server oppsettet er det samme for både tradisjonell NIS og NYS.

Kompiler programvaren for å lage ypserv og makedbm programmene. Du kan konfigurere ypserv til å bruke securenets fil eller tcp_wrappers. tcp_wrapper er mer fleksibel, men mange har store problemer med den. Og noen konfigurasjons filer for tcp_wrappers kan forårsake minne lekasjer. Hvis du har problemer med ypserv kompilert for tcp_wrapper, rekompiler den til å bruke securenets fila. ypserv --version sier hvilken versjon du har.

Hvis du kjører din server som master, avgjør hvilke filer du trenger adgang til via NIS og legg till eller fjern valgene i "all" regelen i /var/yp/Makefile. Du bør alltid sjekke Makefile og editere Options i begynnelsen av fila.

Det var en stor forandring mellom ypserv 1.1 og ypserv 1.2. Siden versjon 1.2, legges filene i cache. Dette betyr at du må alltid må kalle makedbm med -c valget hvis du lager nye maps. Sørg for at du bruker den nye /var/yp/Makefile fra ypserv 1.2 eller senere, eller legg til -c til makedbm i Makefile. Hvis du ikke gjør det, vil ypserv fortsette å bruke de gamle maps, og ikke de oppdaterte.

Så, editer /var/yp/securenets og /etc/ypserv.conf. For mere informasjon, les ypserv(8) og ypserv.conf(5) manual sidene.

Sørg for at portmapper (portmap(8)) kjører, og start serveren ypserv. Kommandoen

    % rpcinfo -u localhost ypserv

bør gi noe som

    program 100004 version 1 ready and waiting
    program 100004 version 2 ready and waiting

"version 1" linjen kan hende mangler, alt etter hvilken ypserv versjon og konfigurasjon du bruker. Det er bare nødvendig hvis du har gamle SunOS 4.x klienter.

Lag så NIS (YP) databasen. På masteren, kjør

    % /usr/lib/yp/ypinit -m

På en slave sørg for at ypwhich -m virker. Det betyr at slaven din må være konfigurert som NIS client før du kan kjøre

    % /usr/lib/yp/ypinit -s masterhost
for å installere hosten som en NIS slave.

Det er det, serveren din er oppe og kjører.

Hvis du har større problemer, kan du starte ypserv og ypbind i debug modus på forskjellige xtermer. Debug outputen skal vise deg hva som går galt.

Hvis du trenger å oppdatere en map, kjør make i /var/yp katalogen på NIS master. Det vil oppdatere en map hvis kildefila er nyere og dytte filene til slave serverene. Ikke bruke ypinit til å oppdatere en map.

Du vil kanskje editere root sin crontab *på slave* serveren og legge til følgende linjer:

      20 *    * * *    /usr/lib/yp/ypxfr_1perhour
      40 6    * * *    /usr/lib/yp/ypxfr_1perday
      55 6,18 * * *    /usr/lib/yp/ypxfr_2perday
Dette vil sørge for at de fleste NIS maps er up-to-date, selv om en oppdatering hoppes over fordi slaven var nede på det tidspunktet oppdatering ble utført på master.

Du kan legge til en slave når du måtte ønske. Først sørg for at den nye slave serveren har adgang til å kontakte NIS master. Så kjør

    % /usr/lib/yp/ypinit -s masterhost
på den nye slaven. På master serveren, legg til den nye slavens server navn til /var/yp/ypservers og kjør make i /var/yp for å oppdatere mapen.

Hvis du vil begrense adgangen for brukere til din NIS server, må du sette opp NIS serveren som en klient ved å kjøre ypbind og legge til pluss-linjer i /etc/passwd som _halvveis_ er passordfila. Bibliotek funksjoner vil ignorere alle normale linjer etter den første NIS linja, og vil få resten av informasjonen gjennom NIS. På denne måten vil NIS adgangs regler holdes. For eksempel:

     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
     [ Alle normale brukere ETTER denne linjen! ]
     tester:*:299:10:Bare en test konto:/tmp:
     miquels:1234567890123:101:10:Miquel van Smoorenburg:/home/miquels:/bin/zsh

Nå vil brukeren "tester" eksistere, men ha et shell /etc/NoShell. miquels vil ha normal adgang.

Alternativt kan du editere /var/yp/Makefile fila og sette NIS til å bruke en annen kilde passord fil. På store systemer er NIS password og group filer vanligvis lagret i /etc/yp/. Hvis du gjør dette vil ikke de vanlige programmene som administrer password fila passwd, chfn, adduser lenger fungere og du trenger egne hjemmelagde programmer til dette.

Men, yppasswd, ypchsh og ypchfn vil selvsagt virke.

8.2 Server Programmet yps

For å sette opp en "yps" NIS server les forrige del. "yps" server oppsett er likt, _men_ ikke helt det samme så pass på dersom du prøver å bruke "ypserv" instruksjoner mot "yps"! "yps" støttes ikke av noen forfatter, og inneholder noen sikkerhetshull. Du bør ikke bruke det!!

"yps" NIS server programvare finnes på:

  Server                Katalog                     Filnavn

  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 Programmet rpc.ypxfrd

rpc.ypxfrd brukes til å øke overføringshastigheten til veldig store NIS maps fra en NIS master til NIS slave servere. Hvis en NIS slave server mottar en melding om at det finnes en ny map, vil den starte ypxfr for å overføre den nye mapen. ypxfr vil lese innholdet i en map fra master serveren ved å bruke yp_all() funksjonen. Denne prosessen kan ta flere minutter når det er veldig store maps som må lagres av database biblioteket.

rpc.ypxfrd serveren øker overføringshastigheten ved å la NIS slave servere kopiere master serverens map filer istedet for å bygge deres egne fra scratch. rpc.ypxfrd bruker en RPC-basert fil overførings protokoll, så det ikke trengs å bygges en ny map.

rpc.ypxfrd kan startes av inetd. Men siden den startes veldig tregt bør den startes av ypserv. Du trenger bare å starte rpc.ypxfrd på NIS master server.

8.4 Programmet rpc.yppasswdd

Når brukere forandrer sine passord, skal NIS passord databasen og sansynligvis andre NIS databaser, som bygger på NIS passord databasen, oppdateres. Programmet "rpc.yppasswdd" er en server som behandler passord forandringer og som sørger for at NIS informasjonen oppdateres riktig. rpc.yppasswdd er nå integrert i ypserv. Du trenger ikke lenger de gamle separate yppasswd-0.9.tar.gz eller yppasswd-0.10.tar.gz, og du må ikke bruke dem lenger. rpc.yppasswdd i ypserv 1.3.2 har full shadow støtte. yppasswd er nå en del av yp-tools-2.2.tar.gz.

Du må bare starte rpc.yppasswdd på NIS master server. Som standard har ingen brukere lov til å forandre deres fulle navn eller login shell. Du kan gi adgang til dette med -e chfn eller -e chsh valgene.

Hvis dine passwd og shadow filer er i en annen katalog enn /etc, må du legge til -D valget. For eksempel, hvis du har lagt alle kilde filer i /etc/yp og ønsker at brukerene kan endre sine shell, må du starte rpc.yppasswdd med følgende parametre:

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

eller

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

Det er alt. Du må bare sørge for at rpc.yppasswdd bruker de samme filene som /var/yp/Makefile. Feilmeldinger vil logges via syslog.


Next Previous Contents