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:
Assicurarsi di aver impostato un nome di dominio-YP. Se non è stato fatto, utilizzate il comando:
/bin/domainname nis.domain |
Avviare "/sbin/portmap" se non è già in esecuzione.
Creare la diretory /var/yp se non esiste.
Avviare /usr/sbin/ypbind
Utilizzare il comando rpcinfo -p localhost per verificare se ypbind sia stato in grado di registrare i propri servizi tramite portmapper. L'output dovrebbe apparire in modo simile:
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100007 2 udp 637 ypbind 100007 2 tcp 639 ypbind |
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100007 2 udp 758 ypbind 100007 1 udp 758 ypbind 100007 2 tcp 761 ypbind 100007 1 tcp 761 ypbind |
Si potrebbe pure eseguire rpcinfo -u localhost ypbind. Questo comando dovrebbe produrre qualcosa di simile:
program 100007 version 2 ready and waiting |
program 100007 version 1 ready and waiting program 100007 version 2 ready and waiting |
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.
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"!
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".
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.
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.
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.
La sola libc di Linux che supporta le password shadow su NIS è la GNU C Library 2.x. La libc5 di Linux non le supporta. La libc5 di Linux compilata con NYS attivato possiede un po' di codice per supportarle ma questo codice è in alcuni casi fortemente imperfetto e non lavora con tutte le voci shadow corrette.
Solaris non supporta le password shadow su NIS.
Linux-PAM 0.75 e successivi non supportano le password shadow su NIS se utilizzate il modulo pam_unix.so o se installate il modulo extra pam_unix2.so. I vecchi sistemi che utilizzano pam_pwdb/libpwdb (per esempio Red Hat Linux 5.x) hanno bisogno di sostituire le voci di /etc/pam.d/*. Tutte le regole di pam_pwdb dovranno essere sostituite completamente da un modulo pam_unix_*.
Un esempio di file /etc/pam.d/login appare come:
#%PAM-1.0 auth requisite pam_unix2.so nullok #set_secrpc auth required pam_securetty.so auth required pam_nologin.so auth required pam_env.so auth required pam_mail.so account required pam_unix2.so password required pam_pwcheck.so nullok password required pam_unix2.so nullok use_first_pass use_authtok session required pam_unix2.so none # debug or trace session required pam_limits.so |