Next Previous Contents

6. Hva trenger du for å sette opp NIS?

6.1 Bestem om du er en Server, Slave eller Klient.

For å svare på dette spørsmålet må du vurdere to ting:

  1. Maskinen din skal være en del av et nettverk med eksisterende NIS servere
  2. Du har ingen NIS servere i nettverket enda

I det første tilfellet trenger du bare klient programmer (ypbind, ypwhich, ypcat, yppoll, ypmatch). Det viktigste programmet er ypbind. Programmer må til enhver tid kjøre, noe som betyr at den alltid skal finnes i listen over prosesser. Det er en daemon prosess og trenger å startes fra systemets oppstarts fil (f.eks /etc/init.d/nis, /sbin/init.d/ypclient, /etc/rc.d/init.d/ypbind, /etc/rc.local). Så snart ypbind kjører er ditt system en NIS klient.

I det andre tilfellet, hvis du ikke har noen NIS servere, trenger du også NIS server programmet (vanligvis kallt ypserv). Delen Sette opp en NIS Server forklarer hvordan man setter opp en NIS server på din Linux maskin med "ypserv" implementasjonen til Peter Eriksson og Thorsten Kukuk. Merk deg at fra versjon 0.14 støtter denne implementasjonen master-slave konseptet nevnt i seksjon 4.1.

Det finnes også en gratis NIS server, kallt "yps", skrevet av Tobias Reber i Tyskland som støtter master-slave konseptet, men har andre begrensninger og ikke har blitt støttet på lenge.

6.2 Programvaren

System biblioteket "/usr/lib/libc.a" (versjon 4.4.2 eller bedre) eller det "delte" biblioteket "/lib/libc.so.x" inneholder alle nødvendige system anrop for å suksessfullt kompilere NIS klient og server programvare. For GNU C Library 2 (glibc 2.x), trenger du også /lib/libnsl.so.1.

Noen folk rapporterer også at NIS bare virker med "/usr/lib/libc.a" versjon 4.5.21 og bedre, så hvis du ønsker å være sikker ikke bruk eldre libc'er. NIS klient programvare kan hentes fra:

  Server                Katalog                          Filnavn

  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

Når du har hentet programvaren, følg instruksjonene som kommer med programvaren. yp-clients 2.2 skal brukes med libc4 og libc5 helt til 5.4.20. libc 5.4.21 og glibc 2.x trenger yp-tools 1.4.1 eller senere. Den nye yp-tools 2.2 skal virke med alle Linux libc. Siden det var en feil i NIS koden, bør du ikke bruke libc 5.4.21-5.4.35. Bruk libc 5.4.36 eller senere isteder, ellers vil ikke de fleste YP programmer virke. ypbind 3.3 vil også fungere med alle biblioteker. Hvis du bruker gcc 2.8.x eller større, egcs eller glibc 2.x, bør du bruke ypbind-3.3-glibc5.diff patchen til ypbind 3.3. Aldri bruk ypbind fra yp-clients 2.2. ypbind-mt er en ny, multitrådet daemon. Den trenger en Linux 2.2 kernel, og glibc 2.1 eller nyere.

6.3 ypbind daemon

Etter å ha klart å kompilere programvaren er du nå klar til å installere den. En god plass for ypbind daemon er i katalogen /usr/sbin. Noen vil kanskje si at du ikke trenger ypbind på et system med NYS. Dette er feil. ypwhich og ypcat trenger den alltid.

Du må selvsagt gjøre dette som root. De andre filene (ypwhich, ypcat, yppasswd, yppoll, ypmatch) bør legges i en katalog som alle brukere har adgang til, vanligvis /usr/bin.

Nyere ypbind versjoner har en konfigurasjonsfil kallt /etc/yp.conf. Du kan legge inn en fast NIS server der - for mer info sjekk manual siden for ypbind(8). Du trenger også denne filen for NYS. Et eksempel:

  ypserver voyager
  ypserver defiant
  ypserver ds9

Hvis systemet kan finne hostnames uten NIS, kan du bruke navnet, ellers må du bruke IP adressen. ypbind 3.3 har en bug og vil bare bruke der siste (ypserver ds9 i eksempelet). Alle andre linjer ignoreres. ypbind-mt behandler dette riktig og bruker den som svarer først.

Den kan være en god ide å teste ypbind før du legger den inn i oppstarts filene. For å teste ypbind, gjør følgende:

Nå bør du kunne bruke NIS klient programmer som ypcat, osv... For eksempel, "ypcat passwd.byname" vil gi deg hele NIS passord databasen.

VIKTIG: Dersom du hopper over test prosedyren vær sikker på at du har satt domain navnet, og laget katalogen

    /var/yp

Katalogen MÅ eksistere for at ypbind skal starte opp riktig.

For å sjekke om domain navnet er satt riktig, bruk /bin/ypdomainname fra yp-tools 2.2. Den bruker yp_get_default_domain() funksjonen som er mer kresen. Den godtar for eksempel ikke "(none)" domain navn, som er default i Linux og som lager masse problemer.

Dersom testen virket kan du nå forandre oppstarts filene slik at ypbind startes ved oppstart og systemet ditt vil fungere som en NIS klient. Sørg for at domain navnet settes før du starter ypbind.

Vel, det er det. Reboot maskinen og sjekk boot meldingene og se om ypbind startes.

6.4 Sette opp en NIS Client med Tradisjonell NIS

For host lookups må du sette (eller legge til) "nis" i lookup rekkefølge linjen i /etc/host.conf fila. Les manual siden "resolv+.8" flere detaljer.

Legg til følgende linje i /etc/passwd på dine NIS klienter:

+::::::

Du kan også bruke + og - tegnene for å inkludere/ekskludere eller forandre brukere. Hvis du vil ekskludere brukeren guest, legg til -guest i din /etc/passwd fil. Vil du bruke en annen shell (f.eks. ksh) for brukeren "linux"? Ingen problem, du legger til "+linux::::::/bin/ksh" (uten hermetegnene) til din /etc/passwd. Felter som du ikke vil forandre må stå tomme. Du kan også bruke Netgroups for bruker kontroll.

For eksempel, å gi login-adgang til bare miquels, dth og ed, og alle medlemmer av sysadmin netgroup, men ha konto data til alle brukere tilgjengelig bruk:

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

Merk at i Linux kan du også overstyre passord feltet, som vi gjorde i dette eksempelet. Vi fjernet også login "ftp", slik at den ikke er kjent lenger, og anonym ftp vil ikke virke.

Netgroup vil se ut som

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

VIKTIG: Netgroup funksjonen er implementert siden libc 4.5.26. Hvis du har en versjon av libc tidligere enn 4.5.26, har alle brukere i NIS passord databasen adgang til din linux maskin hvis du kjører "ypbind" !

6.5 Sette opp en NIS Klient med NYS

Alt som trengs er at NIS konfigurasjons filen (/etc/yp.conf) peker til den rette serveren(e) for informasjon. I tillegg må Name Services Switch konfigurasjons fila (/etc/nsswitch.conf) være satt riktig opp.

Du bør installere ypbind. Den trengs ikke av libc, men NIS(YP) tools trenger den.

Hvis du ønsker å bruke inkluder/ekskluder bruker muligheten (+/-guest/+@admins), må du bruke "passwd: compat" og "group: compat" i nsswitch.conf. Merk at det ikke finnes noen "shadow: compat"! Du må bruke "shadow: files nis" i dette tilfellet.

NYS kildekodene er del av libc 5 kildekodene. Når du kjører configure, si først "NO" til "Values correct" spørsmålet, så si "YES" til "Build a NYS libc from nys".

6.6 Sette opp en NIS Klient med glibc 2.x

glibc bruker "tradisjonell NIS", så du må starte ypbind. Name Services Switch konfigurasjons fila (/etc/nsswitch.conf) må settes riktig opp. Hvis du bruker compat modusen for passwd, shadow eller group, må du legge til "+" på slutten av disse filene og du kan bruke inkluder/ ekskluder bruker muligheten. Konfigurasjonen er helt lik den under Solaris 2.x.

6.7 nsswitch.conf fila

Network Services Switch fila /etc/nsswitch.conf avgjør rekkefølgen lookups utføres i når en bestemt bit av imformasjon etterspørres, akkurat som /etc/host.conf fila som bestemmer måten host lookups utføres. For eksempel, linjen

    hosts: files nis dns

spesifiserer at host lookup funksjoner først skal se i den lokale /etc/hosts fila, så ved en NIS lookup og til slutt gjennom domain name service (/etc/resolv.conf og named), hvor så dersom ingen treff er funnet en feilmelding returneres. Denne fila må kunne leses av alle brukere! Du kan finne mer informasjon i manual siden nsswitch.5 eller nsswitch.conf.5.

En god /etc/nsswitch.conf fil for NIS er:

#
# /etc/nsswitch.conf
#
# En eksempel Name Service Switch config fil. Denne filen bør sorteres
# med de mest brukte servicer i begynnelsen.
#
# Biten '[NOTFOUND=return]' betyr at letingen etter en bit skal stoppe
# dersom letingen i forrige linje ikke fant noe. Merk at hvis letingen
# feilet på grunn av noen andre grunner (som at ingen NIS server svarer)
# vil letingen fortsette i neste linje.
#
# Lovlige kommandoer er:
#
#       nisplus                 Bruk NIS+ (NIS versjon 3)
#       nis                     Bruk NIS (NIS versjon 2), også kallt YP
#       dns                     Bruk DNS (Domain Name Service)
#       files                   Bruk lokalt filer
#       db                      Bruk /var/db databasene
#       [NOTFOUND=return]       Stopp letingen hvis ingen er funnet så langt
#

passwd:     compat
group:      compat
# For libc5, må du bruke shadow: files nis
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

passwd_compat, group_compat og shadow_compat er bare støttet av glibc 2.x. Hvis det ikke er noen shadow regler i /etc/nsswitch.conf, vil glibc bruke passwd regelen for lookups. Det finnes noen flere lookup moduler for glibc som hesoid. For mer informasjon, les glibc dokumentasjonen.

6.8 Shadow Passord med NIS

Shadow passord over NIS er alltid en dårlig ide. Du mister sikkerheten som shadow gir deg, og det støttes kun av noen få Linux C biblioteker. En god måte å unngå shadow passord over NIS er å putte bare lokale system brukere i /etc/shadow. Fjern NIS bruker linjene fra shadow daatbasen, og putt passordet tilbake i passwd, slik at du kan bruke shadow for root login og normale passord for NIS brukere. Dette har den fordelen av det vil virke med alle NIS klienter.

Linux

Den eneste Linux libc som støtter shadow passord over NIS, er GNU C Library 2.x. Linux libc5 har ingen støtte for det. Linux libc5 kompilert med NYS har noe kode for det. Men denne koden er veldig dårlig i noen tilfeller og virker ikke med alle riktige shadow linjer.

Solaris

Solaris støtter ikke shadow passord over NIS.

PAM

PAM støtter ikke Shadow passord over NIS, spesielt pam_pwdb/libpwdb. Det er et stort problem for RedHat 5.x brukere. Hvis du har glibc og PAS, må du forandre /etc/pam.d/* filene. Forandre alle pam_pwdb reglene gjennom pam_unix_* modulene. På grunn av en feil i pam_unix_auth.so modulen vil dette ikke alltid virke.

En eksempel /etc/pam.d/login fil ser ut som dette:

#%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

For auth trenger du pam_unix_auth.so modulen, for account pam_unix_acct.so, for password pam_unix_passwd.so og for session pam_unix_session.so modulen.


Next Previous Contents