Come creare un server SAMBA

Facciamo un piccolo preambolo ad alcune motivazione che possono spingere all’utilizzo di un server samba in ambito aziendale e/o privato.

In casa come in ufficio si sente la necessità di condividere contenuti come films, musica, foto, documenti ecc. ecc.

In ambito windows si può decidere molto banalmente di condividere la cartella, tuttavia se a tale pc si vuole concedere accesso a terminali che utilizzano altri sistemi operativi diventa complicato gestire determinati protocolli. Inoltre soprattutto in ambito lavorativo si preferisce allestire una macchina di un certo rilievo al fine di sicurezza ed accessibilità diversa dai classici pc. Lo scenario che andremo a discutere dunque si basa su un sistema server / client con sistemi operativi promiscui. Utilizziamo linux (nel mio caso UBUNTU SERVER) come server e mettiamo in opera SAMBA che è un progetto che si basa su due servizi di vitale importanza.

Samba deriva da SMB (Short Message Block) che utilizza i seguenti servizi: nmbd e smbd. Il servizio nmbd si occupa della risoluzione dei nomi (al pari del servizio WINS in windows) e della gestione della master browser list.

Il servizio smbd si occupa della gestione delle risorse condivise.

La master browser list è il tabulato in cui sono registrati i pc che sono collegati alla rete, ed in genere è una macchina (non sempre la stessa) che ha determinate caratteristiche tipo il tempo di presenza in connessione a cui si rivolgono le macchine che effettuano l’accesso per avere i riferimenti e dichiarare la loro presenza in rete.

Il file in cui avviene la configurazione di samba è smb.conf che troviamo nella cartella /etc/samba

Al fine di non incorrere in maldestre configurazioni rinominiamo tale file con il comando:

mv /etc/samba/smb.conf /etc/smb.conf.backup

e creiamo un nuovo file di configurazione utilizzando editor come vi oppure nano.

vi smb.conf

In tale file vanno distinte diverse sezioni la global deve sempre esistere, vediamone un prototipo:

[global]

workgroup = Nome_del_Gruppo

netbios name = Nome_della_Cartella_di_Rete

server string = file Server Linux

security = USER

 map to guest = Bad user

guest ok = yes 

Molte elle voci di configurazione sono facilmente comprensibili tipo:

workgroup rappresenta il gruppo a cui si decide di appartenere, qualora il client non dovesse già appartenere al gruppo scelto in fase di ricerca rete troverà un nuovo gruppo, netbios name rappresenta il nome della cartella in ricerca di rete con cui si evidenzierà la condivisione, security rappresenta il livello di sicurezza in fase di accesso, con USER si indica accesso con USERID e Password, tuttavia avendo scelto in questo primo approccio che chiunque può accedere, con la map to guest ponendo Bad user significa che tutte le autenticazioni non riuscite vanno considerate come accesso guest e la direttiva successiva guest ok = yes convalida l’accesso.

Adesso iniziamo a creare la prima cartella a cui tutti possono accedere sia in lettura che in scrittura e la chiamiamo Personale:

[Personale]

comment = cartella aperta

path = /home/Personale

public = YES

writable = YES

Tra parentesi quadre quindi c’è il nome della condivisione di rete, a seguire il path della condivisione e poi le dichiarative di accesso in lettura e di modifica e scrittura in questo caso impostate su SI.

La cartella va creata per cui spostiamoci sotto home:

cd /home

e creiamo la cartella con:

mkdir Personale

e le diamo tutti i permessi con:

chmod 777 Personale oppure chmod a+x Personale

Adesso proviamo a gestire un’altra cartella che chiamiamo Software nella quale verranno raccolti i programmi con Setup e che sarà di sola lettura:

[Software]

comment = cartella di setup

path = /home/Software

public = YES

writable = NO

Come avrete notato l’unica differenza è il NO in writable. Anche in questo caso si proceda a creare la cartella.

 Un comando utile per verificare la bontà della configurazione è testparm che effettua un riepilogo della configurazione fornendo un risultato positivo o di errore, possono essere utilizzate anche delle opzione come -v ma rimando al manuale per i dettagli. Altro comando (utility) molto utile per verificare le condivisioni di Samba è smbclient che con l’opzione -L fornisce il dettaglio delle condivisioni.