All'interno del dipartimento d'Informatica le informazioni vengono condivise tra le varie macchine attraverso un server nis. Il mac os può interrogare il nis attraverso ypbind, tuttavia non è in grado di utilizzare le password criptate per un problema di formato della mappa che viene fornita dal nis.
Per aggirare questo problema è necessario inserire le informazioni fornite dal nis nel database Netinfo. Questo database è il cuore dei servizi di rete di un mac, infatti raccoglie sia le informazioni relative agli utenti che quelle per l'automount che quelle per uscire fuori del dominio.
Per inserire i dati nel Netinfo sono stati creati due script: uno script che interroga il nis chiedendo i dati degli utenti e le password separatamente e li inserisce nel db con i comandi propri del mac os, e uno script che inserisce i gruppi.
Questo script è in grado di:
E' possibile far girare questo script su un solo mac e propagare le informazioni agli altri mac della rete,
eleggendo questo mac master Netinfo e configurando gli altri perché lo interroghino.
Ovviamente questo vale per tutti i servizi di rete.
Loggarsi come amministratore del sistema o come root. Se si è connessi alla console aprire un terminale.
Digitare il seguente commando per fare una copia della configurazione corrente:
cp /etc/hostconfig /etc/hostconfig.backup
Se si sta usando Rhapsody o Mac OS X Server 1.x, digitare:
cp -R /etc/netinfo/local.nidb /etc/netinfo/local.nidb.backup
Per le altre versioni digitare
cp -R /var/db/netinfo/local.nidb /var/db/netinfo/local.nidb.backup
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 200100001 1 udp 938 netinfobind 200100001 1 tcp 941 netinfobind |
NISDOMAIN= di.unipi.it RPCSERVER=-YES- |
{ "LookupOrder" = ( "CacheAgent", "NIAgent", "YPAgent" ); "name" = ( "lookupd" ); "MaxThreads" = ( "12" ); CHILDREN = ( { "name" = ( "groups" ); "LookupOrder" = ( "CacheAgent", "NIAgent", "YPAgent" ); }, { "name" = ( "users" ); "LookupOrder" = ( "CacheAgent", "NIAgent", "YPAgent" ); }, { "name" = ( "hosts" ); "LookupOrder" = ( "CacheAgent", "NIAgent", "YPAgent", "DNSAgent", "NILAgent" ); }, { "name" = ( "netgroups" ); "LookupOrder" = ( "CacheAgent", "NIAgent", "YPAgent" ); } ) } |
|
A questo punto il mac è in grado di interrogare il nis e riconoscere gli utenti, gli utenti però non possono ancora loggarsi perchè la password di dominio non viene riconosciuta. A questo punto è necessario eseguire lo script aggmac.pl al termine del quale tutti gli utenti definiti sul dominio potranno accedere al mac e lo script aggroup.pl per inserire anche i gruppi.
Per vedere la sintassi corretta per inserire un utente nel database vedere più sotto
Per fare in modo che un utente definito sul dominio loggandosi su un mac si trovi nella sua home dipartimentale, è necessario mettere il mac in condizione di montare le directory esportate dai vari home server presenti in dipartimento.
Il mac ha un automount proprietario diverso da quello usato su linux, in particolare non ha un amd.
L'automount legge le informazioni dal database Netinfo quindi la cosa più semplice da fare è inserire i dati richiesti nel db e riavviare l'automount.
Per fare questo è stato creato uno script che recupera host, mount point e percorso da un server, le formatta secondo la sintassi dei comandi di Netinfo e li inserisce più sotto in questo caso non sono necessarie operazioni preliminari, in quanto il mac è del tutto svincolato dal resto del dominio se non per il recupero delle informazioni che avviene con una semplice chiamata di sistema all'interno dello script.
Le operazioni eseguite dallo script utilizzano i comandi che possono essere impartiti dal terminale, le stesse azioni possono essere ripetute dall'utente tramite interfaccia grafica accedendo al Netinfo manager.
Perché la cosa funzioni è necessario che il mac riesca a connettersi al server in ssh senza dare la password. Vedi documento ssh.html
Per fare in modo che un utente possa esportare la home dal proprio mac, è necessario attivare il servizio di nfs e inserire nel db Netinfo i dati della directory da esportare. La procedura è simile a quella seguita per configurare il client nfs, percontinuità è riportata solo la versione a riga di comando, ma le stesse operazioni si possono fare attraverso il Netinfo manager. Supponiamo di voler esportare la directory /external/path:
|
Attenzione: la struttura che andiamo a creare deve essere exports , il nome è importante perchè se è diverso non viene fatta l'esportazione dei filesystem.
Per esportare i filesystem è necessaria la presenza di tre demoni: portmapper, mountd e nfsd. Al momento del boot la presenza di questa struttura fa partire i demoni mountd e nfsd. Se si vogliono far partire senza il boot è necessario tener presente che l'ordine di partenza è importante:
|
Se la procedura è andata a buon fine eseguendo il comando:
showmount -e
si otterrà un output simile al seguente:
Exports list on localhost:
/external/path Everyone
e sarà possibile accedere al file system da remoto.
Una nota importante sulla sicurezza: inserire il campo vuoto nella property clients permette a chiunque di accedere al file system, mentre mettere opts ro limita alla sola lettura gli accessi da parte di chiunque. Nel caso si vogliano esportare delle home directory, si suggerisce di inserire il nome proprietario nel campo client e rw nel campo opts.
Al dipartimento d'Informatica viene usato il software Amanda per fare il backup dei filesystem. Il mac os X appartiene alla famiglia degli unix, quindi non ci sono particolari problemi per installare il client amanda. La procedura da seguire è riportata di seguito, sono date per scontate le installazioni di gcc, make e hfstar.
|
|
|
{ socket_type = dgram protocol = udp wait = yes user = amanda server = /usr/local/libexec/amandad server_args = amandad groups = yes disable = no } |
touch /etc/amandates chown amanda.wheel /etc/amandates mkdir -R /usr/local/var/amanda/gnutar-lists/ chown amanda.wheel /usr/local/var/amanda/gnutar-lists/ |