User Tools

Site Tools


linuxbog:admin:nis
Linux – Friheden til systemadministration: Version 2.8.20060113 – 2021-01-07
forrige Kapitel 7. Linux som server næste

7.4. NIS – deling af adgangskodefiler mellem Unix-maskiner

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.rpmypserv                 ##################################################

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 startStarting 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 -mAt 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 startBinding 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 -xUse "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 erpasswdoggroup. Yderligere kanaliasesogmail.aliasesvære smart til at styre lokal e-post.

Men hvad indeholder de så?

[root@supernaut /home/kwv]#ypcat passwdhanne:BmXEt39P1By2I:301:300:Hanne:/supernaut/hanne:/bin/bash
kwv:/g10xcDPwwaA2:405:400:Kristian Vilmann:/home/kwv:/bin/bash[root@supernaut /home/kwv]#ypcat grouphjemme:x:300:
teknik:x:400:

På klienten skal ypbind selvfølgelig være installeret. Og den skal startes:

[root@omnitech /root]#rpm -q ypbindypbind-3.3-24[root@omnitech /root]#domainname spo[root@omnitech /root]#/etc/rc.d/init.d/ypbind startBinding 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]#ypwhichsupernaut.strangeparty.dk[root@omnitech /root]#ypcat passwdhanne:$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 omnitecTrying 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 ~]$iduid=301(hanne) gid=300(hjemme) groups=300(hjemme)[hanne@omnitec ~]$pwd/supernaut/hanne[hanne@omnitec ~]$whoamihanne[hanne@omnitec ~]$ls -altotal 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 ~]$yppasswdChanging NIS account information for hanne on supernaut.strangeparty.dk.
Please enter old password:GAMMELKODEChanging NIS password for hanne on supernaut.strangeparty.dk.
Please enter new password:NYKODEPlease retype new password:NYKODEThe NIS password has been changed on supernaut.strangeparty.dk.

Lad os se om det virker:

[hanne@omnitec ~]$telnet supernautTrying 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:hannePassword:NYKODELast login: Wed Mar 29 13:02:19 from omnitec.strangeparty.dk

Fint. Kodeordet er ændret på serveren. Men hvad med klienten?

[hanne@supernaut ~]$telnet omnitecTrying 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:hannePassword:NYKODELast 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 ypypbind 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 ypypbind 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 ypbindypbind 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

forrige hjem næste
NFS – Deling af filer mellem Unix-maskiner op AppleTalk
linuxbog/admin/nis.txt · Last modified: by 127.0.0.1

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

Brug af AI : Al tekst kán være uddrag af AI genereret tekst og kan være fejlbehæftet.
AI kan lave fejl og det kan mennesker også, men al tekst er gennemgået af et menneske for fejl, og personlig bias kan være tilføjet.