Revision for “Centralisatie User Acounts met NIS” created on 2 augustus 2016 21:25:35

TitelInhoudSamenvatting
Centralisatie User Acounts met NIS
<div id="toc" class="toc">
<ul>
<li class="toclevel-1 tocsection-1"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Over_deze_HOWTO"><span class="tocnumber">1</span> <span class="toctext">Over deze HOWTO</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Wat_is_NIS.3F"><span class="tocnumber">2</span> <span class="toctext">Wat is NIS?</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Installatie_van_de_NIS_Server_op_Fedora_Core"><span class="tocnumber">3</span> <span class="toctext">Installatie van de NIS Server op Fedora Core</span></a>
<ul>
<li class="toclevel-2 tocsection-4"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Stel_je_NIS_domain_in"><span class="tocnumber">3.1</span> <span class="toctext">Stel je NIS domain in</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Stel_de_NIS_Server_in"><span class="tocnumber">3.2</span> <span class="toctext">Stel de NIS Server in</span></a></li>
<li class="toclevel-2 tocsection-6"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Start_de_NIS_Server_en_gerelateerde_daemons"><span class="tocnumber">3.3</span> <span class="toctext">Start de NIS Server en gerelateerde daemons</span></a></li>
<li class="toclevel-2 tocsection-7"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Initialiseer_je_NIS_domein"><span class="tocnumber">3.4</span> <span class="toctext">Initialiseer je NIS domein</span></a></li>
<li class="toclevel-2 tocsection-8"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Start_de_NIS_client_.28op_de_server.29"><span class="tocnumber">3.5</span> <span class="toctext">Start de NIS client (op de server)</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-9"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Installatie_van_de_NIS_client_op_Fedora_Core"><span class="tocnumber">4</span> <span class="toctext">Installatie van de NIS client op Fedora Core</span></a>
<ul>
<li class="toclevel-2 tocsection-10"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Configureer_authenticatie"><span class="tocnumber">4.1</span> <span class="toctext">Configureer authenticatie</span></a></li>
<li class="toclevel-2 tocsection-11"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Start_de_NIS_client_services"><span class="tocnumber">4.2</span> <span class="toctext">Start de NIS client services</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-12"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Gebruikers_beheren"><span class="tocnumber">5</span> <span class="toctext">Gebruikers beheren</span></a>
<ul>
<li class="toclevel-2 tocsection-13"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Gebruiker_toevoegen"><span class="tocnumber">5.1</span> <span class="toctext">Gebruiker toevoegen</span></a></li>
<li class="toclevel-2 tocsection-14"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Gebruiker_verwijderen"><span class="tocnumber">5.2</span> <span class="toctext">Gebruiker verwijderen</span></a></li>
<li class="toclevel-2 tocsection-15"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Wachtwoord_wijzigen"><span class="tocnumber">5.3</span> <span class="toctext">Wachtwoord wijzigen</span></a>
<ul>
<li class="toclevel-3 tocsection-16"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Quick_.26_Dirty_oplossing_voor_het_wijzigen_van_wachtwoorden"><span class="tocnumber">5.3.1</span> <span class="toctext">Quick &amp; Dirty oplossing voor het wijzigen van wachtwoorden</span></a></li>
</ul>
</li>
<li class="toclevel-2 tocsection-17"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Wijzigen_van_overige_gebruikersinstellingen"><span class="tocnumber">5.4</span> <span class="toctext">Wijzigen van overige gebruikersinstellingen</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-18"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Groepen_beheren"><span class="tocnumber">6</span> <span class="toctext">Groepen beheren</span></a></li>
<li class="toclevel-1 tocsection-19"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Foutmeldingen"><span class="tocnumber">7</span> <span class="toctext">Foutmeldingen</span></a>
<ul>
<li class="toclevel-2 tocsection-20"><a href="http://www.alleslinux.com/mediawiki-1.23.0/index.php/HOWTO:_Centralisatie_User_Accounts_met_NIS#Het_duurt_erg_lang_om_ypbind_te_starten"><span class="tocnumber">7.1</span> <span class="toctext">Het duurt erg lang om ypbind te starten</span></a></li>
</ul>
</li>
</ul>
</div>
<h2><span id="Over_deze_HOWTO" class="mw-headline">Over deze HOWTO</span></h2>
Deze HOWTO helpt je met het installeren, configureren en beheren van NIS, de Network Information Service. Deze HOWTO is gebaseerd op een minimale Fedora Core installatie. Dat wil zeggen, dat aangenomen wordt dat eventuele additionele pakketten nog niet zijn geïnstalleerd, en alle standaard pakketten niet zijn geïnstalleerd.
<h2><span id="Wat_is_NIS.3F" class="mw-headline">Wat is NIS?</span></h2>
Wanneer een gebruiker inlogt op een systeem, wordt de gebruikersnaam en het wachtwoord gecontroleerd met de locale database, meestal, maar afhankelijk van enkele instellingen <code>/etc/passwd</code>, <code>/etc/shadow</code>&gt; en <code>/etc/group</code>. Wanneer gebruikers op meerdere systemen moeten kunnen inloggen, is het efficiënter om de gebruikersnamen en wachtwoorden te centraliseren. Dit kan, met NIS. Hiervoor heb je het volgende nodig:
<ul>
<li>Een systeem om als NIS server in te richten</li>
<li>Een systeem om als NIS cliënt te laten fungeren</li>
</ul>
<h2><span id="Installatie_van_de_NIS_Server_op_Fedora_Core" class="mw-headline">Installatie van de NIS Server op Fedora Core</span></h2>
Om als NIS Server te kunnen fungeren, moet je de volgende pakketten installeren:
<blockquote>
<pre>yum install ypserv
</pre>
</blockquote>
Ik raad je aan om ook het pakket <code>yp-tools</code> te installeren, hiermee kunnen we in een later stadium tests uitvoeren:
<blockquote>
<pre>yum install yp-tools
</pre>
</blockquote>
<b>Let op:</b> Om NIS goed te laten functioneren, hebben we ook een goed functionerende <a class="new" title="HOWTO: DNS Configureren (page does not exist)" href="http://www.alleslinux.com/mediawiki-1.23.0/index.php?title=HOWTO:_DNS_Configureren&amp;action=edit&amp;redlink=1">DNS</a> configuratie nodig.
<h3><span id="Stel_je_NIS_domain_in" class="mw-headline">Stel je NIS domain in</span></h3>
Wijzig <code>/etc/sysconfig/network</code>:
<blockquote>
<pre>nano /etc/sysconfig/network
</pre>
</blockquote>
en voeg de regel toe (of vervang de regel, indien al een regel bestaat die begint met <code>NISDOMAIN</code>):
<blockquote>
<pre>/etc/sysconfig/network
NISDOMAIN="FEDORA-LINUX"
</pre>
</blockquote>
<h3><span id="Stel_de_NIS_Server_in" class="mw-headline">Stel de NIS Server in</span></h3>
Wijzig het bestand <code>/etc/yp.conf</code>:
<blockquote>
<pre>nano /etc/yp.conf
</pre>
</blockquote>
en vul in plaats van ‘pinky.kanarip.com’ de DNS naam van je eigen systeem in:
<blockquote>
<pre>/etc/yp.conf
domain FEDORA-LINUX server pinky.kanarip.com
</pre>
</blockquote>
<h3><span id="Start_de_NIS_Server_en_gerelateerde_daemons" class="mw-headline">Start de NIS Server en gerelateerde daemons</span></h3>
Om de NIS Server te starten, is het van belang ook portmap, yppasswdd en ypxfrd
<blockquote>
<pre>service portmap start
Starting portmapper: [ OK ]
service yppasswdd start
Starting YP passwd service: [ OK ]
service ypserv start
Setting NIS domain name NIS-SCHOOL-NETWORK: [ OK ]
Starting YP server services: [ OK ]
</pre>
</blockquote>
Zorg vervolgens dat deze services ook worden gestart na een reboot:
<blockquote>
<pre>chkconfig portmap on
chkconfig yppasswdd on
chkconfig ypserv on
</pre>
</blockquote>
Hier is een overzicht van de functies van iedere service:
<table align="center">
<tbody>
<tr>
<th colspan="3">NIS Services</th>
</tr>
<tr>
<td></td>
<td>portmap</td>
<td>Dit is de RPC daemon waarop NIS is gebaseerd</td>
</tr>
<tr>
<td></td>
<td>yppasswdd</td>
<td>Dit is de daemon die het mogelijk maakt om gebruikers op NIS clients hun wachtwoord te wijzigen</td>
</tr>
<tr>
<td></td>
<td>ypserv</td>
<td>De NIS server</td>
</tr>
<tr>
<td></td>
<td>ypbind</td>
<td>De NIS client</td>
</tr>
<tr>
<td></td>
<td>ypxfrd</td>
<td>Versneld synchronisatie tussen NIS servers bij hele grote NIS database bestanden</td>
</tr>
<tr>
<td></td>
</tr>
</tbody>
</table>
Zorg dat alle services draaien, voordat je verder gaat met de volgende stap. Je kunt dit controleren met het volgende commando:
<blockquote>
<pre>rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100004 2 udp 884 ypserv
100004 1 udp 884 ypserv
100004 2 tcp 884 ypserv
100004 1 tcp 884 ypserv
100009 1 udp 970 yppasswdd

</pre>
</blockquote>
<b>Let op:</b> Bovenstaande hoeft niet perse overeen te komen met wat je ziet op je eigen NIS server. De poorten die de op RPC gebaseerde services gebruiken worden door de portmapper toegewezen.
<h3><span id="Initialiseer_je_NIS_domein" class="mw-headline">Initialiseer je NIS domein</span></h3>
Nu je de naam hebt gekozen voor je NIS domein, en de gerelateerde services hebt gestart, wordt het tijd om de NIS server te vullen met informatie. Hiertoe gebruik je het commando <code>/usr/lib/yp/ypinit</code>, waarna je de NIS server op moet geven. In ons voorbeeld is dit pinky.kanarip.com, maar op je eigen server gebruik je hiervoor de DNS naam van je eigen NIS server.
<blockquote>
<pre>/usr/lib/yp/ypinit -m

At this point, we have to construct a list of the hosts which will run NIS
servers. bigboy 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 &lt;control D&gt;.
next host to add: pinky.kanarip.com
next host to add:
The current list of NIS servers looks like this:

pinky.kanarip.com

Is this correct? [y/n: y] y
We need a few minutes to build the databases…
Building /var/yp/FEDORA-LINUX/ypservers…
Running /var/yp/Makefile…
gmake[1]: Entering directory `/var/yp/FEDORA-LINUX’
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 services.byservicename…
Updating netid.byname…
Updating protocols.bynumber…
Updating protocols.byname…
Updating mail.aliases…
gmake[1]: Leaving directory `/var/yp/FEDORA-LINUX’

pinky.kanarip.com has been set up as a NIS master server.

Now you can run ypinit -s pinky.kanarip.com on all slave server.

</pre>
</blockquote>
<h3><span id="Start_de_NIS_client_.28op_de_server.29" class="mw-headline">Start de NIS client (op de server)</span></h3>
Je NIS server is nu gereed, in de zin dat de NIS database is gevuld. Nu is het tijd om de ypxfrd service te starten, en de ypbind service, zodat de NIS server ook client wordt van zichzelf.

Voer de volgende commando’s uit:
<blockquote>
<pre>service ypbind start
Binding to the NIS domain: [ OK ]
Listening for an NIS domain server.
service ypxfrd start
Starting YP map server: [ OK ]
chkconfig ypbind on
chkconfig ypxfrd on
</pre>
</blockquote>
En controleer of het domein helemaal goed draait (hiervoor is het pakket <code>yp-tools</code> nodig):
<blockquote>
<pre>ypcat passwd
user1:$1$T0mFXxM1$Anasd55fJAqZecs9moLKO.:500:500::/home/user1:/bin/bash
user2:$1$T0mFXxM1$Anasd55fJAqZecs9moLKO.:501:501::/home/user2:/usr/bin/passwd
user3:$1$T0mFXxM1$Anasd55fJAqZecs9moLKO.:502:502::/home/user3:/sbin/nologin
[…]

</pre>
</blockquote>
<h2><span id="Installatie_van_de_NIS_client_op_Fedora_Core" class="mw-headline">Installatie van de NIS client op Fedora Core</span></h2>
Zoals eerder in deze HOWTO al aangestipt, heeft een minimale installatie van Fedora Core reeds de pakketten geïnstalleerd die nodig zijn om een systeem als NIS client te laten fungeren.
<h3><span id="Configureer_authenticatie" class="mw-headline">Configureer authenticatie</span></h3>
Om authenticatie te configureren, geef je het volgende commando:
<blockquote>
<pre>authconfig –enablenis –nisdomain=FEDORA-LINUX –nisserver=pinky.kanarip.com
</pre>
</blockquote>
Als dit klaar is, zou het een bestand <code>/etc/yp.conf</code> moeten hebben gemaakt met de volgende inhoud:
<blockquote>
<pre>/etc/yp.conf
domain FEDORA-LINUX server pinky.kanarip.com
</pre>
</blockquote>
en /etc/sysconfig/network heeft de regel:
<blockquote>
<pre>/etc/sysconfig/network
NISDOMAIN=FEDORA-LINUX
</pre>
</blockquote>
Daarbij wordt het bestand <code>/etc/nsswitch.conf</code> gewijzigd door dit commando. <code>/etc/nsswitch.conf</code> bevat de volgorde waarin het systeem zoekt naar middelen om namen te resolven, zoals de normale bestanden, DNS, LDAP en/of NIS. Hier is te zien dat authconfig enkele belangrijke bestanden met betrekking tot gebruikers, wachtwoorden en groepen heeft gewijzigd.
<blockquote>
<pre>/etc/nsswitch.conf
[…]
passwd: files nis
shadow: files nis
group: files nis
[…]
</pre>
</blockquote>
Er wordt nu eerst gezocht in de bestanden <code>/etc/passwd</code>, <code>/etc/shadow</code> en <code>/etc/group</code>, en daarna in NIS.
<h3><span id="Start_de_NIS_client_services" class="mw-headline">Start de NIS client services</span></h3>
Start nu de services voor de NIS client:
<blockquote>
<pre>service portmap start
Starting portmapper: [ OK ]
service ypbind start
Binding to the NIS domain: [ OK ]
Listening for an NIS domain server.
service ypasswdd start
Starting YP passwd service: [ OK ]
</pre>
</blockquote>
en zorg dat deze ook worden gestart als het systeem start:
<blockquote>
<pre>chkconfig portmap on
chkconfig ypbind on
chkconfig yppasswdd on
</pre>
</blockquote>
Gebruik het commando <code>rpcinfo -p localhost</code> om te controleren of bovenstaande services volledig zijn gestart.

Test of de NIS client verbinding kan maken met de NIS server met het commando:
<blockquote>
<pre>ypcat passwd
user1:$1$T0mFXxM1$Anasd55fJAqZecs9moLKO.:500:500::/home/user1:/bin/bash
user2:$1$T0mFXxM1$Anasd55fJAqZecs9moLKO.:501:501::/home/user2:/usr/bin/passwd
user3:$1$T0mFXxM1$Anasd55fJAqZecs9moLKO.:502:502::/home/user3:/sbin/nologin
[…]

</pre>
</blockquote>
<b>Gefeliciteerd</b>, je hebt NIS succesvol geconfigureerd.
<h2><span id="Gebruikers_beheren" class="mw-headline">Gebruikers beheren</span></h2>
<h3><span id="Gebruiker_toevoegen" class="mw-headline">Gebruiker toevoegen</span></h3>
Een gebruiker toevoegen gebeurd op de NIS server. Hiertoe maak je, zoals normaal, een gebruiker aan:
<blockquote>
<pre>useradd user83
passwd user83
Changing password for user user83.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

</pre>
</blockquote>
Daarna moet de NIS database up-to-date worden gebracht:
<blockquote>
<pre>cd /var/yp
make
gmake[1]: Entering directory `/var/yp/FEDORA-LINUX’
Updating passwd.byname…
Updating passwd.byuid…
Updating netid.byname…
gmake[1]: Leaving directory `/var/yp/FEDORA-LINUX’
</pre>
</blockquote>
Ter controle:
<blockquote>
<pre>ypmatch user83 passwd
user83:$1$T0mFXxM1$Anasd55fJAqZecs9moLKO.:583:583::/home/user83:/bin/bash

</pre>
</blockquote>
<h3><span id="Gebruiker_verwijderen" class="mw-headline">Gebruiker verwijderen</span></h3>
Een gebruiker verwijderen gaat ook alleen vanaf de NIS server:
<blockquote>
<pre>userdel user83
</pre>
</blockquote>
Daarna moet de NIS database up-to-date gebracht worden:
<blockquote>
<pre>cd /var/yp
make
gmake[1]: Entering directory `/var/yp/FEDORA-LINUX’
Updating passwd.byname…
Updating passwd.byuid…
Updating netid.byname…
gmake[1]: Leaving directory `/var/yp/FEDORA-LINUX’
</pre>
</blockquote>
<h3><span id="Wachtwoord_wijzigen" class="mw-headline">Wachtwoord wijzigen</span></h3>
Het wachtwoord kan door zowel root als door de gebruiker worden gewijzigd met het commando:
<blockquote>
<pre>yppasswd user83
</pre>
</blockquote>
Of, als gebruiker:
<blockquote>
<pre>yppasswd
</pre>
</blockquote>
Hierna hoeft de NIS database niet apart up-to-date te worden gebracht. Het is dus van belang om je gebruikers op de hoogte te stellen van dit feit, en ze niet met het commando <code>passwd</code> hun wachtwoord te laten wijzigen.
<h4><span id="Quick_.26_Dirty_oplossing_voor_het_wijzigen_van_wachtwoorden" class="mw-headline">Quick &amp; Dirty oplossing voor het wijzigen van wachtwoorden</span></h4>
<b>Voor ervaren gebruikers</b> Ik doe op mijn systemen het volgende:
<ul>
<li>Controleer in de $PATH environment variabele dat <code>/sbin</code> voor <code>/usr/bin</code> staat ($PATH geeft de volgorde aan waarin de directories worden doorzocht naar een opgegeven commando).</li>
</ul>
<blockquote>
<pre>mv /usr/bin/passwd /sbin/passwd
ln -s /usr/bin/yppasswd /usr/bin/passwd
</pre>
</blockquote>
De gebruikers kunnen nu gewoon van het commando <code>passwd</code> gebruik blijven maken, terwijl ze op de achtergrond eigenlijk gebruik maken van <code>yppasswd</code>.
<h3><span id="Wijzigen_van_overige_gebruikersinstellingen" class="mw-headline">Wijzigen van overige gebruikersinstellingen</span></h3>
Het wijzigen van de overige gebruikersinstellingen, zoals Full Name, Shell en Home Directory, moeten worden uitgevoerd op de NIS server, met het commando <code>usermod</code>. De lokale user database wordt dan aangepast, en dus zal de NIS server database nog up-to-date moeten worden gebracht:
<blockquote>
<pre>cd /var/yp; make
</pre>
</blockquote>
De wijzigingen zijn nu beschikbaar op alle NIS clients.
<h2><span id="Groepen_beheren" class="mw-headline">Groepen beheren</span></h2>
Het toevoegen, verwijderen of wijzigen van een groep, zijn allen acties die alvorens in de NIS database opgenomen te kunnen worden, eerst op de lokale user database van de NIS server moeten worden uitgevoerd. Hieronder valt tevens het toevoegen van een gebruiker aan een groep, of het verwijderen van een gebruiker uit een groep.

Hierna dient de NIS server database up-to-date te worden gebracht:
<blockquote>
<pre>cd /var/yp; make
</pre>
</blockquote>
<h2><span id="Foutmeldingen" class="mw-headline">Foutmeldingen</span></h2>
<h3><span id="Het_duurt_erg_lang_om_ypbind_te_starten" class="mw-headline">Het duurt erg lang om ypbind te starten</span></h3>
Als het erg lang duurt om ypbind te starten, controleer dan of op de NIS server de RPC daemon ypserv wel goed draait:
<blockquote>
<pre>service ypserv status
ypserv (pid 1766) is running…
# rpcinfo -p localhost
[root@pinky ~]# rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100004 2 udp 884 ypserv
100004 1 udp 884 ypserv
100004 2 tcp 884 ypserv
100004 1 tcp 884 ypserv
100009 1 udp 970 yppasswdd
600100069 1 udp 913 fypxfrd
600100069 1 tcp 915 fypxfrd
100007 2 udp 885 ypbind
100007 1 udp 885 ypbind
100007 2 tcp 885 ypbind
100007 1 tcp 885 ypbind
</pre>
</blockquote>
Indien de service <code>ypserv</code> niet netjes draait, herstart deze:
<blockquote>
<pre>service ypserv restart
</pre>
</blockquote>
of, wanneer portmap niet volledige antwoorden geeft, herstart de portmap service en de ypserv service:
<blockquote>
<pre>service portmap restart
service ypserv restart
</pre>
</blockquote>



Old New Date Created Author Actions
2 augustus 2016 21:25:35 thijs
17 juli 2016 14:32:25 Mirjam Hulshof