Per permettere al software, di cui parleremo più avanti, di funzionare, dovrete eseguire il programma /usr/sbin/rpc.portmap. Alcune distribuzioni di Linux hanno già installato il codice in /etc/rc.d/rc.inet2 per far partire questo demone. Tutto ciò che dovrete fare sarà di togliere il commento ed eseguire il reboot della macchina Linux per attivarlo.
L'RPC portmapper (portmap(8c)) è un software che converte i numeri dei programmi RPC in protocolli TCP/IP (o UDP/IP). Deve essere attivo per eseguire chiamate RPC (che è quello che fa il client NIS) al server RPC (tipo un server NIS) su quella macchina. Quando il server RPC parte, comunica al portmap quale numero di porta lo sta ascoltando, e quale numero di programma RPC si prepara a servire. Quando un client vuole fare una chiamata RPC ad un determinato numero di programma, contatterà prima il portmap sulla macchina server per determinare il numero di porta attraverso la quale spedire i pacchetti RPC.
Normalmente, i server RPC standard vengono avviati da inetd(8C), cosicché il portmap deve essere attivato prima di "inetd".
Per rispondere a questa domanda ci sono due possibilità:
Nel primo caso, vi servono solo i programmi client (ypbind, ypwhich, ypcat, yppoll, ypmatch). Il programma più importante è ypbind. Questo programma deve essere sempre attivo, deve sempre apparire nella lista dei processi. È un cosiddetto ``processo demone'' e deve essere inizializzato dai file di avvio del sistema (esempio /etc/rc.local). Dal momento in cui ypbind è attivo, il vostro sistema è diventato un client NIS.
Nel secondo caso, se non esistono server NIS, avete bisogno di un programma
server NIS (normalmente ypserv). La sezione 6 descrive come configurare
un NIS server sulla vostra macchina Linux usando l'implementazione
``ypserv'' di Peter Eriksson (<peter@ifm.liu.se>
). Notate che
dalla versione 0.14 questa implementazione supporta il concetto di
master-slave discusso nella sezione 3.
C'è, però, un altro NIS server free a disposizione, chiamato ``yps'', scritto da Tobias Reber in Germania che supporta il concetto di master-slave, ma ha altre limitazioni.
La libreria di sistema ``/usr/lib/libc.a'' (version 4.4.2 e successive) o le librerie condivise ``/usr/lib/libc.sa'' e le loro relative DLL contengono le necessarie chiamate di sistema per poter compilare con successo il software sia per il client che per il server NIS.
Alcuni utenti hanno riportato che il NIS funziona solo con ``/usr/lib/libc.a'' versione 4.5.21 e successive quindi se volete andare sul sicuro non usate vecchie libc. Il software NIS client si trova su:
Site Directory File Name
ftp.uni-paderborn.de /linux/local/yp yp-clients-2.2.tar.gz
ftp.funet.fi /pub/Linux/BETA/NYS/clients yp-clients-?.?.tar.gz
ftp.lysator.liu.se /pub/NYS/clients yp-clients-?.?.tar.gz
sunsite.unc.edu /pub/Linux/system/Network/admin yp-clients-2.2.tar.gz
Dal momento che avrete a disposizione il software, seguite le istruzioni incluse nello stesso.
Diamo per scontato il fatto che avete compilato il software con successo siete pronti ad installarlo. Un posto consigliabile per il demone ypbind è la directory /usr/sbin.
Chiaramente, eseguite l'installazione come utente root. Gli altri binari (ypwhich, ypcat, yppoll, ypmatch) devono essere posti in una directory accessibile da tutti gli utenti, per esempio /usr/etc or /usr/local/bin. Sarà buona cosa testare ypbind prima di inserirlo nel file /etc/rc.d/rc.inet2.
Per testare ypbind:
/bin/domainname-yp nis.domain
dove nis.domain
può essere qualsiasi cosa, _NON_ normalmente
associato con il nome del dominio della vostra macchina! La ragione di
ciò consiste nel rendere la vita difficile ad un cracker esterno, e
impedirgli di appropriarsi del database delle password dei vostri
server NIS. Se non conoscete quale sia il nome del dominio NIS della
vostra rete, contattate il vostro amministratore di sistema o di rete.
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100007 2 udp 637 ypbind
100007 2 tcp 639 ypbind
300019 1 udp 660
program 100007 version 2 ready and waiting
Infine, non dimenticate che per la ricerca delle macchine dovete aggiungere ``nis'' alla riga di precedenze di ricerca nel vostro file /etc/host.conf. Consultate la manpage ``resolv+.8'' per ulteriori dettagli.
A questo punto dovete essere in grado di usare i programmi client NIS tipo ypcat, ecc... Per esempio, ``ypcat passwd'' vi fornirà per intero il database NIS delle password.
IMPORTANTE: Se saltate le procedure di test assicuratevi di aver settato il nome di dominio e creato la directory:
/var/yp
Questa directory DEVE esistere per permettere a ypbind di partire correttamente.
Se il test ha funzionato vorrete cambiare i files /etc/rc.d/rc.M e /etc/rc.d/rc.inet2 del vostro sistema onde permettere a ypbind di essere inizializzato all'avvio ed al vostro sistema di diventare un NIS client. Modificate il file /etc/rc.d/rc.M e controllate i comandi che settano il nome del dominio. Cambiate il nome del dominio nel nome del vostro dominio. Poi, modificate il file /etc/rc.d/rc.inet2, togliete il commento alle linee che inizializzano il demone rpc.portmap, e aggiungete le linee seguenti subito dopo quelle che fanno partire l'rpc.portmap:
#
# Start the ypbind daemon
#
if [ -f ${NET}/ypbind -a -d /var/yp ]; then
echo -n " ypbind"
${NET}/ypbind
fi
A differenza dell'implementazione del NIS su Sun non vi servirà editare i file /etc/passwd ed /etc/group per dotarvi delle funzionalità del NIS. L'implementazione Sun prevede una linea "+:*:0:0:::" nel file /etc/passwd ed una linea "+:*:0:" in /etc/group per comunicare al NIS di cercare i database NIS password e NIS group.
IMPORTANTE: Noterete che il comando finger riporta "no such user" se non aggiungete la linea "+:*:0:0:::" al file /etc/passwd. Inserendo la linea "+:*:0:0:::" nel file /etc/passwd correggerete il finger.
Bene, questo è quanto. Eseguite il reboot e osservate i messaggi per vedere se ypbind è partito.
IMPORTANTE: Noterete che la funzionalità di netgroup viene implementata a partire dalla libreria libc 4.5.26. Netgroup permette il controllo d'accesso per tutte le macchine e per tutti gli utenti nel dominio NIS, che richiederanno una voce del tipo:
+@this_machine_users
nel file /etc/passwd. Ma se avete una versione libc antecedente la 4.5.26, qualsiasi utente registrato nel database NIS delle password può accedere alla vostra macchina Linux se avete attivato ``ypbind''.