last update 02/ may / 2002
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!
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
- 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
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