last update 02/ may / 2002
Samba...
Queste note derivano da una estenuante esperienza di installazione di Samba e sono un esempio di come spesso nell'informatica gli automatismi ci complicano la vita.
Per chi non lo sapesse Samba è una suite di programmi che fornisce servizi di condivisione di files e di stampanti a dei clients SMB. Il che, detto in parole più semplici, significa poter connettere un host GNU/Linux a dei PC windows e viceversa.
L'obiettivo che si voleva raggiungere era di dotare gli utenti
di un file server affidabile nel quale copiare i propri dati, in
modo che poi questi venissero salvati automaticamente tramite
l'unita di backup del server. Visto il costo delle licenze
sembrava assurdo ricorrere a Windows NT quando i client Windows
possono usufruire dei servizi offerti da Samba (per informazioni
http://it.samba.org/samba/samba.html)
anche perchè, per chi non lo sapesse, Win NT richiede una
licenza per ogni client che si collega.
Per capire meglio il seguito, spiego la modalità di lavoro
prevista. Ogni pc client viene configurato per seguire il logon
ad un dominio NT che di seguito viene chiamato AZIENDA. Quando
l'utente esegue il logon tramite un nome di login ed una
password, che di fatto sono quelli registrati sul server Linux,
viene eseguito uno script che risiede nella directory
/home/netlogon
del server e che si chiama con il
nome di login dell'utente e l'estensione .bat (es. l'utente mario
fa riferimento a /home/netlogon/mario.bat
. Questo
script contiene l'istruzione di mappare la home directory
dell'utente nel server come disco F: del client. L'utente
può quindi poi eseguire le copie dei suoi files nel disco
F: il quale viene salvato su nastro giornalmente.
La versione di Linux utilizzata è una Red Hat 6.2 con installazione custom (ovvero i pacchetti scelti manualmente secondo le nostre necessità). La versione di Samba (2.0.6) fornita con tale distribuzione è oggi piuttosto datata e soffre di alcuni limiti che verranno illustrati alla fine dell'articolo
Una volta installato l'apposito rpm (samba-2.0.6-9.rpm)
abbiamo avviato linuxconf per la configurazione del servizio.
Disastro!!!
Non voglio tediare nessuno con la serie di errori, tentativi e
problemi incontrati pur avendo fatto e disfatto la configurazione
più volte. I risultati ottenuti sono stati: (in ordine
casuale) mancato avvio del servizio, nessuna visibilità in
rete, tasks bloccati...
Vi anticipo subito che il problema è dovuto a Linuxconf
(o almeno alla versione presente nella distribuzione RH 6.2).
Linuxconf e un bellissimo strumento, molto comodo, fornisce un
interfaccia grafica che semplifica parecchio molte operazioni di
configurazione del sistema, ma sbaglia a scrivere la
configurazione di Samba nel file /etc/smb.conf e sovrascrive i
tentativi di modifica manuale.
Risultati simili sono stati ottenuti con l'interfaccia grafica
SWAT, un tool per l'amministrazione del file smb.conf attraverso
il client web.
Soluzione?? Semplice!
- Abbiamo rimosso samba e reinstallato l' rpm.
- Stampato i manuali di samba
- Editato manualmente il file /etc/smb.conf con il manuale a portata di mano, fino ad ottenere il risultato voluto (i commenti all'interno del file aiutano molto)
Ecco quali sono le modifiche fondamentali da eseguire sul file smb.conf che viene installato di default in modo da ottenere un host linux che si comporta come un controllore di dominio Win NT:
Le righe che seguono riportano il nome del gruppo di lavoro/dominio della rete Windows (nell'esempio un classico...nome dell'azienda) e la dicitura che compare quando si "sfoglia la rete" dal client.
workgroup = AZIENDA
server string = Samba Server
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
os level = 33
Attiviamo ora per i clients il logon al dominio 'NT'
domain logons = yes
logon script = %U.bat
encrypt passwords = no
Ho approntato una directory /home/netlogon/
ove
inserire i files di logon nella forma spiegata all'inizio. La directory viene
mappata con le seguenti istruzioni:
[netlogon]
comment = Network Logon Service
path = /home/netlogon
guest ok = yes
writable = no
share modes = no
browseable = no
Tali files contengono un istruzione per il
collegamento della home directory dell'utente
net use f: \\nomeserver\nomeshare
che viene
mappata come disco F:. Chiaramente nomeshare è il
nome assegnato allo share che punta alla home directory
dell'utente nella forma seguente:
[nomeshare]
path = /home/nomeutente
guest ok = no
writable = yes
browseable = no
valid users = +nomeutente
create mask = 0775
directory mask = 0775
Ultime note riguardano la versione di Samba usata: la 2.0.6 è infatti nata per fornire servizi ai clients Win9.x e si incontrano serie difficoltà con WinNT, Win2K e XP. Per questi s.o. vi rimando all'ottimo articolo di Tommaso Di Donato apparso su Pluto Journal