7. Impostazione del client NIS

7.1. Il demone ypbind

Dopo aver compilato con successo il software, si è pronti ad installarlo. Un posto adatto per il demone ypbind è la directory /usr/sbin. Qualcuno potrebbe dirvi che non è necessario ypbind su un sistema con NYS. Questo è sbagliato, ypwhich e ypcatne ne necessitano sempre.

Naturalmente si deve fare questo come root. Gli altri binari (ypwhich, ypcat, yppasswd, yppoll, ypmatch) dovrebbero essere messi in una directory accessibile a tutti gli utenti, normalmente /usr/bin.

Le nuove versioni di ypbind hanno un file di configurazione chiamato /etc/yp.conf. Al suo interno, è possibile specificare un server NIS - per maggiori informazioni si veda la pagina del manuale per ypbind(8). È possibile utilizzare questo file per NYS. Un esempio:
ypserver 10.10.0.1
ypserver 10.0.100.8
ypserver 10.3.1.1

Se il sistema può risolvere i nomi degli host senza NIS, potrete usare il nome, altrimenti bisogna utilizzare l'indirizzo IP. ypbind 3.3 ha un bug ed utilizzerà solamente l'ultima voce (nell'esempio ypserver 10.3.1.1). Tutte le altre voci sono ignorate. ypbind-mt gestisce correttamente questa cosa e ne utilizza uno, il primo che risponde.

Può essere una buona idea provare ypbind prima di incorporarlo nel file di avvio. Per provare ypbind si faccia quanto segue:

A questo punto si dovrebbe essere in grado di utilizzare i programmi per il client NIS come ypcat, ecc... Per esempio, ypcat passwd.byname vi restituirà l'intero database delle password NIS.

IMPORTANTE: se si salta la procedura di test poi assicurarsi di avere impostato il nome di dominio e creato la directory

    /var/yp

Questa directory DEVE esistere perché ypbind possa avviarsi con successo.

Verificare se il domainname sia impostato correttamente, si usi /bin/ypdomainname di yp-tools 2.2. Questo utilizza la funzione yp_get_default_domain() che è più restrittiva. Non si permetta, per esempio, il domainname "(none)" che è predefinito sotto Linux e crea parecchi problemi.

Se il test funziona, ora potrete cercare di sostituire i vostri file di avvio così che ypbind possa essere eseguito all'avvio ed il vostro sistema si comporti come un client NIS. Assicurarsi che il domainname sia impostato prima di avviare ypbind.

Bene, questo è tutto. Riavviate la macchina ed osservate i messaggi di boot per vedere se ypbind sia effettivamente attivo.

7.2. Impostare un client NIS utilizzando il NIS tradizionale

Per la ricerca degli host si deve impostare (o aggiungere) "nis" alla riga relativa all'ordine di ricerca nel vostro file /etc/host.conf. Per cortesia, si legga la manpage "resolv+.8" per maggiori dettagli.

Aggiungere la seguente riga a /etc/passwd sui vostri client NIS:

+::::::

Potrete pure utilizzare i caratteri + e - per includere/escludere o cambiare gli utenti. Se volete escludere l'utente guest, aggiungete semplicemente -guest al vostro file /etc/passwd. Volete usare una differente shell (p.e. ksh) per l'utente "linux" ? Nessun problema, semplicemente aggiungete "+linux::::::/bin/ksh" (senza gli apici) al vostro /etc/passwd. I campi che non volete sostituire lasciateli vuoti. Potete pure utilizzare Netgroups per il controllo dell'utente.

Per esempio, per permettere l'accesso-login solo a miquels, dth e ed, e tutti i membri del netgroup sysadmin, pur mantenendo disponibili i dati di account di tutti gli altri utenti:

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

Da notare che in Linux è pure possibile ridefinire il campo password, come fatto in questo esempio. Si è pure rimosso il login "ftp", così non è più noto e l'ftp anonimo non funzionerà.

Il netgroup potrebbe apparire come
sysadmins (-,software,) (-,kukuk,)

IMPORTANTE: La caratteristica di netgroup è stata implementata dalla libc 4.5.26. Se si possiede una versione di libc precedente alla 4.5.26, ogni utente presente nel database delle password di NIS può accedere alla vostra macchina Linux se esegue "ypbind"!

7.3. Impostare un client NIS utilizzando NYS

Tutto ciò che è richiesto è che il file di configurazione NIS (/etc/yp.conf) punti al(ai) server(s) corretto(i) per le sue informazioni. Pure il file di configurazione del Name Services Switch (/etc/nsswitch.conf) deve essere correttamente impostato.

Si dovrebbe installare ypbind. Non è richiesto dalle libc, ma è necessario per gli strumenti di NIS(YP).

Se si vuole impiegare la caratteristica di includere/escludere per utente (+/-guest/+@admins), si deve utilizzare "passwd: compat" e "group: compat" in nsswitch.conf. Si noti che non c'è "shadow: compat"! In questo caso di deve usare "shadow: files nis".

I sorgenti di NYS sono parte dei sorgenti di libc 5. Quando si esegue configure, la prima volta rispondere "NO" alla domanda "Values correct", poi "YES" alla "Build a NYS libc from nys".

7.4. Impostare un Client NIS utilizzando glibc 2.x

Le glibc utilizzano il "NIS tradizionale", così è necessario eseguire ypbind. Il file di configurazione del Name Services Switch (/etc/nsswitch.conf) deve essere correttamente impostato. Se si utilizza la modalità compact per passwd, shadow o group, si deve aggiungere il "+" alla fine di questo file e si può usare la caratteristica per l'utente di includere/escludere.

7.5. Il file nsswitch.conf

Il file del Network Services Switch /etc/nsswitch.conf determina l'ordine delle ricerche effettuate quando viene richiesta una certa informazione, proprio come il file /ets/host.conf che determina il modo in cui effettuare le ricerche degli host. Per esempio la riga:

    hosts: files nis dns

specifica che le funzioni di ricerca degli host dovrebbero prima guardare nel file locale /etc/hosts, di seguito fare una ricerca NIS ed infine utilizzare il servizio dei nomi di dominio (/ets/resolv.conf e named). A quel punto, se nessuna corrispondenza è stata trovata, viene riportato un errore. Questo file deve essere leggibile da ogni utente! È possibile reperire ulteriori informazioni nelle pagine di man nsswitch.5 o nsswitch.conf.5.

Un buon file /etc/nsswitch.conf per NIS è:
#
# /etc/nsswitch.conf
#
# Un esempio del file di configurazione del Name Service Switch. Il file
# dovrebbe essere ordinato con i servizi più utilizzati all'inizio.
#
# La voce '[NOTFOUND=return]' indica che la ricerca di una voce dovrebbe
# fermarsi se la ricerca nella voce precedente non ha restituito nulla.
# Si noti che se la ricerca fallisce per altre ragioni (perché nessun
# server NIS risponde) allora la ricerca continua con la nuova voce.
#
# Le voci ammesse sono:
#
#	nisplus			Usa NIS+ (NIS versione 3)
#	nis			Usa NIS (NIS versione 2), chiamato pure YP
#	dns			Usa DNS (Domain Name Service)
#	files			Usa i file locali
#	db			Usa i database /var/db
#	[NOTFOUND=return]	La ricerca si ferma se nulla è stato trovato finora
#

passwd:     compat
group:      compat
# Con libc5, si deve usare 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 e shadow_compat sono supportati solamente da glibc 2.x. Se non vi sono regola shadow in /etc/nsswitch.conf, glibc utilizzerà la regola passwd per le ricerche. Vi sono alcuni altri moduli di ricerca per glibc come hesoid. Per maggiori informazioni, si legga la documentazione di glibc.

7.6. Password Shadow con NIS

Le password shadow su NIS sono sempre una cattiva idea. Si perde la sicurezza che shadow fornisce ed è supportato solo da poche librerie Linux C. Un buon modo di usufruire delle password shadow su NIS è di inserire solo gli utenti locali del sistema in /etc/shadow. Si rimuovano le voci degli utenti dal database di shadow e si rimettano le password in passwd. Così è possibile utilizzare shadow per l'accesso come root e di norma passwd per l'utente NIS. Questo ha il vantaggio che sarà possibile lavorare con ogni client NIS.