Avanti Indietro Indice

9. Mettere su un Server NIS

9.1 Il Programma Server ypserv

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.2.tar.gz
  wauug.erols.com        /pub/net/nis                  ypserv-1.3.2.tar.gz

Per maggiori informazioni si può dare un'occhiata anche a http://www-vt.uni-paderborn.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". Se si fa funzionare il proprio server come master, si determinino quali file si richiede siano disponibili tramite NIS e poi si aggiungano o rimuovano le voci apposite in /var/yp/Makefile.

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 nuove.

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 2 ready and waiting

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.

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 ypserv abbia i permessi per contattare il master NIS. Poi eseguire

    % /usr/lib/yp/ypinit -s masterhost
sul nuovo slave, e aggiungere il nome del server in /var/yp/ypservers. Dopo di ciò, eseguire 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. 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

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.

9.2 Il Programma Server yps

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

9.3 Il Programma rpc.yppasswdd

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.0.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.


Avanti Indietro Indice