Linux – Friheden til systemadministration: Version 2.8.20060113 – 2021-01-07 | ||
---|---|---|
forrige | Kapitel 7. Linux som server | næste |
Er der flere maskiner i lokalnettet, og har brugerne brug for adgang til dem alle (eller nogle af dem), er NIS en god løsning.
NIS, The Network Information System, sørger for at flere maskiner kan dele oplysninger om brugere, grupper og endda også maskiner og en del andre oplysninger.
NIS blev tidligere kaldt "Yellow Pages", forkortet "yp", efter telefonbøgernes gule sider, men det måtte ændres, da Yellow Pages er et registreret varemærke ejet af British Telecom. Men de fleste programmer i NIS starter stadig med yp.
NIS arbejder, ligesom DNS, med et domænenavn. Men disse to domænenavne har intet med hinanden at gøre. I det følgende har vi to Red Hat-maskiner i (DNS-)domænet strangeparty.dk. De skal dele informationer om kodeord mv. i (NIS-)domænet spo.
Serveren hedder "supernaut". Klienten hedder "omnitec".
På serveren skal pakken "ypserv" installeres:
[root@supernaut /home/kwv]# rpm -Uvh /cdrom/RPMS/ypserv-1.3.9-1.alpha.rpm ypserv ##################################################
NIS-domænet skal være "spo". Det sættes med kommandoen domainname.
[root@supernaut /home/kwv]# domainname spo
Yp-serveren skal nu startes:
[root@supernaut /home/kwv]# /etc/rc.d/init.d/ypserv start Starting YP server services: [ OK ]
Det kan betale sig at gennemse, og måske tilrette, filen /var/yp/Makefile. Du bør nok ændre MINUID og MINGID, så disse starter UID (bruger-ID) og GID (grupper-ID) ved 300, og ikke ved 500 som er standard i Red Hat. Du kan også udkommentere linjen "GSHADOW = $(YPPWDDIR)/gshadow" og indsætte "MERGE_group=false".
Herefter initieres NIS-serveren:
[root@supernaut /home/kwv]# /usr/lib/yp/ypinit -m At this point, we have to construct a list of the hosts which will run NIS servers. supernaut.strangeparty.dk is in the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When you are done with the list, type a <control D>. next host to add: supernaut.strangeparty.dk next host to add: The current list of NIS servers looks like this: supernaut.strangeparty.dk Is this correct? [y/n: y] We need some minutes to build the databases... Building /var/yp/spo/ypservers... Running /var/yp/Makefile... gmake[1]: Entering directory `/var/yp/spo' Updating passwd.byname... Updating passwd.byuid... Updating group.byname... Updating group.bygid... Updating hosts.byname... Updating hosts.byaddr... Updating rpc.byname... Updating rpc.bynumber... Updating services.byname... Updating netid.byname... Updating protocols.bynumber... Updating protocols.byname... Updating mail.aliases... gmake[1]: Leaving directory `/var/yp/spo' [root@supernaut /home/kwv]#
Med ypbind installeret på serveren, kan man nu kontrollere de services der stilles til rådighed. Ypbind skal startes først:
[root@supernaut /home/kwv]# /etc/rc.d/init.d/ypbind start Binding to the NIS domain... [ OK ] Listening for an NIS domain server: supernaut.strangeparty.dk
Kommandoen ypcat -x viser de tjenester serveren stiller til rådighed:
[root@supernaut /home/kwv]# ypcat -x Use "ethers" for map "ethers.byname" Use "aliases" for map "mail.aliases" Use "services" for map "services.byname" Use "protocols" for map "protocols.bynumber" Use "hosts" for map "hosts.byname" Use "networks" for map "networks.byaddr" Use "group" for map "group.byname" Use "passwd" for map "passwd.byname"
Det interessante i vores lille netværk er passwd og group. Yderligere kan aliases og mail.aliases være smart til at styre lokal e-post.
Men hvad indeholder de så?
[root@supernaut /home/kwv]# ypcat passwd hanne:BmXEt39P1By2I:301:300:Hanne:/supernaut/hanne:/bin/bash kwv:/g10xcDPwwaA2:405:400:Kristian Vilmann:/home/kwv:/bin/bash [root@supernaut /home/kwv]# ypcat group hjemme:x:300: teknik:x:400:
På klienten skal ypbind selvfølgelig være installeret. Og den skal startes:
[root@omnitech /root]# rpm -q ypbind ypbind-3.3-24 [root@omnitech /root]# domainname spo [root@omnitech /root]# /etc/rc.d/init.d/ypbind start Binding to the NIS domain... [ OK ] Listening for an NIS domain server: .supernaut.strangeparty.dk
Hvis klienten har problemer med at finde NIS-serveren, eller der er flere NIS-domæner i netværket, kan man sætte sine præferencer i filen /etc/yp.conf.
Lad os se om det ser rigtigt ud. ypwhich fortæller hvilken NIS-server klienten er bundet til:
[root@omnitech /root]# ypwhich supernaut.strangeparty.dk [root@omnitech /root]# ypcat passwd hanne:$1$d5dYr98N$/k.0aNyvq/BMX0UlMoyGZ1:301:300:Hanne:/home/hanne:/bin/bash kwv:$1$I1/h6uyj$Spk11r0bYTyo9r.sc7nQ..:405:400:Kristian Vilmann:/home/kwv:/bin/bash
Det ser fint ud. Vi lader nu en bruger prøve telnet fra serveren til klienten. For en god ordens skyld kontrolleres at brugeren hanne ikke optræder i filen /etc/passwd:
[root@omnitech /root]# grep hanne /etc/passwd
Her var der intet svar (nul linjer).
[hanne@supernaut ~]# telnet omnitec Trying 192.168.10.126... Connected to omnitec.strangeparty.dk. Escape character is '^]'. Red Hat Linux release 6.1 (Cartman) Kernel 2.2.12-20 on an i586 login: hanne Password: Last login: Wed Mar 29 13:42:12 from supernaut.strangeparty.dk [hanne@omnitec ~]$ id uid=301(hanne) gid=300(hjemme) groups=300(hjemme) [hanne@omnitec ~]$ pwd /supernaut/hanne [hanne@omnitec ~]$ whoami hanne [hanne@omnitec ~]$ ls -al total 142 drwx------ 2 hanne hjemme 1024 Mar 29 13:13 WebDB/ -rw-r--r-- 1 hanne hjemme 34862 Mar 12 23:24 headbanging.jpg -rw-r--r-- 1 hanne hjemme 59995 Oct 18 22:16 insoundout.gif drwxr-xr-x 4 hanne hjemme 1024 Mar 12 00:10 objectsystem1.0/ -rw-r--r-- 1 hanne hjemme 43971 Mar 21 19:31 sslug.httpd.conf
Det ser rigtigt ud. Læg mærke til at Hannes hjemmekatalog er NFS-monteres fra serveren, og at hun derfor har samme hjemmekatalog på begge maskiner.
NIS tilbyder en række værktøjer til manipulering af brugerinformationerne på NIS-serveren: yppasswd, ypchfn og ypchsh.
De fungerer på samme måde som de tilsvarende kommandoer uden yp-præfikset. Hanne vil gerne skifte sit kodeord:
[hanne@omnitec ~]$ yppasswd Changing NIS account information for hanne on supernaut.strangeparty.dk. Please enter old password: GAMMELKODE Changing NIS password for hanne on supernaut.strangeparty.dk. Please enter new password: NYKODE Please retype new password: NYKODE The NIS password has been changed on supernaut.strangeparty.dk.
Lad os se om det virker:
[hanne@omnitec ~]$ telnet supernaut Trying 192.168.10.1... Connected to supernaut.strangeparty.dk. Escape character is '^]'. Red Hat Linux release 6.0 (Hedwig) Kernel 2.2.14 on an alpha login: hanne Password: NYKODE Last login: Wed Mar 29 13:02:19 from omnitec.strangeparty.dk
Fint. Kodeordet er ændret på serveren. Men hvad med klienten?
[hanne@supernaut ~]$ telnet omnitec Trying 192.168.10.126... Connected to omnitec.strangeparty.dk. Escape character is '^]'. Red Hat Linux release 6.1 (Cartman) Kernel 2.2.12-20 on an i586 login: hanne Password: NYKODE Last login: Wed Mar 29 13:46:21 from supernaut.strangeparty.dk
Hvis man som administrator ændrer i adgangskodefilen, opretter eller sletter en bruger, eller ændrer andet der påvirker NIS, skal man sørge for at NIS-databaserne er konsistente efter ændringerne:
[root@omnitech /root]# cd /var/yp [root@omnitech /root]# make
Og så skal vi lige sørge for at det starter næste gang maskinerne genstartes: På serveren skal ypserv, yppasswdd og ypbind startes i runlevel 3, 4 og 5.
[root@supernaut /home/kwv]# /sbin/chkconfig --list | grep yp ypbind 0:off 1:off 2:off 3:on 4:on 5:on 6:off yppasswdd 0:off 1:off 2:off 3:on 4:on 5:on 6:off ypserv 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ypserv starter ikke automatisk. Det får vi den til:
[root@supernaut /home/kwv]# /sbin/chkconfig ypserv on [root@supernaut /home/kwv]# /sbin/chkconfig --list | grep yp ypbind 0:off 1:off 2:off 3:on 4:on 5:on 6:off yppasswdd 0:off 1:off 2:off 3:on 4:on 5:on 6:off ypserv 0:off 1:off 2:off 3:on 4:on 5:on 6:off
NIS-domænet skal sættes, både på server og klient. Det gøres i /etc/sysconfig/network:
nisdomain=spo
På klienten skal ypbind også startes ved boot:
[root@supernaut /home/kwv]# /sbin/chkconfig --list ypbind ypbind 0:off 1:off 2:off 3:on 4:on 5:on 6:off
NIS kan en del mere end beskrevet her. Men dette er normalt det, der er størst behov for.
For mere information: Linux Network Administrators Guide, NIS-HOWTO, Managing NFS & NIS, O'Reilly & Associates, Manualsiderne fra ypserv- og ypbind-pakkerne. Find dem således:
[hanne@supernaut ~]$ rpm -ql `rpm -qa | grep ^yp` |grep man