Questo documento descrive solamente come impostare il server NIS "ypserv".
Il software per il server NIS lo si può trovare su:
Sito Directory Nome File
ftp.kernel.org /pub/linux/utils/net/NIS ypserv-1.3.6.tar.gz
Per maggiori informazioni si può dare un'occhiata anche a http://www.suse.de/~kukuk/linux/nis.html.
L'impostazione del server è la stessa sia per il NIS tradizionale che per NYS.
Si compili il software per generare i programmi ypserv
e
makedbm
. È possibile configurare ypserv per usare il file
securenets oppure tcp_wrapper. Il tcp_wrapper è molto più flessibile,
ma un sacco di gente ha diversi problemi ad usarlo. Inoltre alcuni
file di configurazione di tcp_wrapper possono causare spreco di
memoria. Se si hanno problemi con ypserv compilato per tcp_wrapper,
lo si ricompili usando il file securenets. Il comando ypserv
--version
mostrerà quale versione si sta usando.
Se si fa funzionare il proprio server come master, si determinino
quali file si vuole siano disponibili tramite NIS e poi si aggiungano
o rimuovano le voci apposite nella regola "all" in
/var/yp/Makefile
. Si dovrebbe comunque dare un'occhiata al
Makefile e modificare le opzioni all'inizio del file.
C'è stato un solo grosso cambiamento tra ypserv 1.1 e ypserv 1.2.
Dalla versione 1.2 ypserv fa il cache dei file handle. Ciò significa
che si deve sempre lanciare makedbm con l'opzione -c se si creano
delle nuove mappe. Sincerarsi di usare il nuovo
/var/yp/Makefile
di ypserv 1.2 o successivo, o si aggiunga
l'opzione -c a makedbm nel Makefile. Se non lo si fa, ypserv
continuerà ad usare le vecchie mappe e non quelle aggiornate.
Ora si modifichino /var/yp/securenets
e /etc/ypserv.conf
.
Per maggiori informazioni, leggere le pagine di manuale di ypserv(8) e
ypserv.conf(5).
Assicurarsi che il portmapper (portmap(8)) sia in esecuzione, e si
avvii il server ypserv
. Il comando
% rpcinfo -u localhost ypserv
dovrebbe restituire qualcosa di simile a
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
La riga "version 1" potrebbe non esserci a seconda della versione di ypserv e della configurazione usata. È necessaria solamente se si usano vecchi client SunOS 4.x.
Ora si generi la base di dati NIS (YP). Sul master, si lanci
% /usr/lib/yp/ypinit -m
Su uno slave, assicurarsi che ypwhich -m
funzioni. Ciò
significa che lo slave dev'essere per prima cosa configurato come
client NIS prima di poter eseguire
% /usr/lib/yp/ypinit -s masterhost
per installare l'host come slave NIS.
È tutto, il proprio server è attivo e in esecuzione.
Se si hanno grossi problemi, si può avviare ypserv
e
ypbind
in modalità di debug su xterm separate. L'output di
debug dovrebbe mostrare cosa non va.
Se si deve aggiornare una mappa, si esegua make
nella
directory /var/yp
del NIS master. Ciò aggiornerà una mappa
se il file sorgente è stato modificato e invierà i file ai server
slave. Non usare ypinit
per aggiornare una mappa.
Non è male poi modificare il crontab di root *nello slave* server ed aggiungere le righe seguenti
20 * * * * /usr/lib/yp/ypxfr_1perhour
40 6 * * * /usr/lib/yp/ypxfr_1perday
55 6,18 * * * /usr/lib/yp/ypxfr_2perday
Ciò assicura che la maggior parte delle mappe NIS saranno mantenute
aggiornate, anche se un aggiornamento è stato perso a causa di
un malfunzionamento (down) dello slave al momento
dell'aggiornamento sul master.
Uno slave può essere aggiunto in qualsiasi momento. Per prima cosa, assicurarsi che il nuovo server slave abbia i permessi per contattare il master NIS. Poi eseguire
% /usr/lib/yp/ypinit -s masterhost
sul nuovo slave. Sul server master si aggiunga poi il nome del nuovo
server slave in /var/yp/ypservers
e si esegua make
in /var/yp
per aggiornare le mappe.
Se si vuole restringere l'accesso al proprio serve NIS agli utenti, si deve impostare il server NIS come un client eseguendo ypbind e aggiungere le voci-più ("+") a /etc/passwd _a mezza via_ del file delle password. Le funzioni di libreria ignoreranno tutte le normali voci dopo la prima voce NIS, ed otteranno le restanti informazioni attraverso NIS. In questo modo sono mantenute le regole di accesso NIS. Un esempio:
root:x:0:0:root:/root:/bin/bash
daemon:*:1:1:daemon:/usr/sbin:
bin:*:2:2:bin:/bin:
sys:*:3:3:sys:/dev:
sync:*:4:100:sync:/bin:/bin/sync
games:*:5:100:games:/usr/games:
man:*:6:100:man:/var/catman:
lp:*:7:7:lp:/var/spool/lpd:
mail:*:8:8:mail:/var/spool/mail:
news:*:9:9:news:/var/spool/news:
uucp:*:10:50:uucp:/var/spool/uucp:
nobody:*:65534:65534:noone at all,,,,:/dev/null:
+miquels::::::
+:*:::::/etc/NoShell
[ Tutti i normali utenti DOPO questa riga! ]
tester:*:299:10:Just a test account:/tmp:
miquels:1234567890123:101:10:Miquel van Smoorenburg:/home/miquels:/bin/zsh
Quindi l'utente tester esisterà, ma avrà la shell impostata a /etc/NoShell. miquels avrà l'accesso normale.
In alternativa, si può modificare il file /var/yp/Makefile
ed
impostare NIS ad usare un altro file di password come sorgente. Su
sistemi grossi, i file delle password e dei gruppi NIS sono solitamente
salvati in /var/yp/ypfiles/
. Se lo si fa i normali strumenti
per l'amministrazione del file delle password come passwd
,
chfn
e adduser
non funzioneranno più e si avrà
bisogno di speciali strumenti fatti su misura.
Comunque yppasswd
, ypchsh
e ypchfn
ovviamente funzioneranno.
Per l'impostazione del server NIS "yps" si faccia riferimento al paragrafo precedente. L'impostazione del server "yps" è simile _ma_ non esattamente la stessa, quindi si faccia attenzione se si prova ad applicare le istruzione di "ypserv" a "yps"! "yps" non è supportato da alcun autore e contiene alcuni problemi di sicurezza. Quindi non è affatto consigliabile usarlo!
Il software per il server NIS "yps" può essere trovato su:
Sito Directory Nome File
ftp.lysator.liu.se /pub/NYS/servers yps-0.21.tar.gz
ftp.kernel.org /pub/linux/utils/net/NIS yps-0.21.tar.gz
rpc.ypxfrd è usato per velocizzare i trasferimenti di grosse mappe NIS dal NIS master ai diversi slave. Se un server NIS slave riceve un messaggio che attesta la presenza di una nuova mappa, avvierà ypxfr per trasferire la nuova mappa. ypxfr leggerà il contenuto di una mappa dal server master usando la funzione yp_all(). Questo processo può durare diversi minuti quando esistono mappe molto grosse che devono essere salvate dalla libreria di database.
Il server rpc.ypxfrd velocizza il processo di trasferimento permettendo si server NIS slave di copiare semplicemente i file di mappa del master piuttosto che si costruiscano da soli la propria copia. rpc.ypxfrd usa un protocollo di trasferimento basato su RPC, cosicché non è necessario per la costruzione di nuove mappe.
rpc.ypxfrd può essere avviato da inetd. Però poiché si avvia molto lentamente, dovrebbe essere lanciato assieme a ypserv. È necessario avviare rpc.ypxfrd solo sul master.
Ogni qual volta gli utenti cambiano le loro password, la base di dati NIS delle password e probabilmente altre basi di dati NIS che dipendono da questa dovrebbero essere aggiornate. Il programma "rpc.yppasswdd" è un server che gestisce le modifiche delle password e assicura che le informazioni NIS sia aggiornate di conseguenza. rpc.yppasswdd è ora integrato in ypserv. Non serve più il vecchio yppasswd-0.9.tar.gz o yppasswd-0.10.tar.gz, e non dovrebbero essere più usati. Il rpc.yppasswd in ypserv 1.3.2 ha il pieno supporto per le shadow. yppasswd fa ora parte di yp-tools-2.2.tar.gz,
Si deve lanciare rpc.yppasswd solo nel server NIS master. Di default, gli utenti non hanno il permesso di cambiare il loro nome o la loro shell di login. È possibile permettere tali modifiche con le opzioni -e chfn o -e chsh.
Se i propri file passwd e shadow sono in una directory diversa da /etc, si deve aggiungere l'opzione -D. Per esempio, se si sono messi tutti i file sorgente in /etc/yp e si vuole che gli utenti possano cambiare la propria shell, si deve avviare rpc. yppasswdd con i seguenti parametri:
rpc.yppasswdd -D /etc/yp -e chsh
oppure
rpc.yppasswdd -s /etc/yp/shadow -p /etc/yp/passwd -e chsh
Non c'è molto altro da fare. Ci si deve solamente assicurare che
rpc.yppasswdd
usi gli stessi file di
/var/yp/Makefile
. Gli errori saranno registrati usando
syslog.