Samba, la soluzione ideale per una multipiattaforma di rete

Cos’è Samba?

Samba è una suite di strumenti gratuiti, installabile sul server. Il pacchetto con licenza GNU è un’implementazione del protocollo di rete SMB (che in precedenza dava il nome alla suite) nelle distribuzioni Linux e Unix.  Il protocollo Server Message Block (SMB), che a partire dallo sviluppo di una nuova versione è noto anche con il nome di Common Internet File System (CIFS), era originariamente responsabile nei sistemi operativi Windows per servizi di file, stampanti e altri processi server. Attraverso l’implementazione viene supportata l’integrazione nella rete di computer Windows, Linux e Unix, in modo che possano essere scambiati facilmente i dati e utilizzate le stampanti presenti, indipendentemente dai sistemi operativi in uso. Non importa che si tratti di un server Unix o Linux, dalla quarta versione il software svolge anche il ruolo di Domain controller (DC), basato sul servizio Active Directory (AD), permettendo così l’autorizzazione centrale e l’autentificazione dei computer e degli utenti all’interno della rete.

Per poter configurare i protocolli SMB e CIFS, la suite di Samba necessita di alcuni moduli. I quattro demoni seguenti (servizi che operano nel background) ne costituiscono il nucleo:

  • samba: demone aggiunto nella versione quattro che gli consente di svolgere il ruolo di Domain Controller; viene configurato tramite il file smb.conf.
  • smbd: responsabile della condivisione dei file e delle stampanti, si configura tramite smb.conf.
  • nmbd: si occupa della risoluzione dei nomi del NetBIOS negli indirizzi IP e può essere ugualmente configurato tramite il file smb.conf.
  • winbindd: risolve le informazioni sui gruppi e sugli utenti, rendendoli chiari per i sistemi Unix e Linux, e offre delle proprie possibilità di configurazione.

Installare Samba sul server: come funziona

Il protocollo standard SMB/CIFS serve per una facile condivisione di rete su Windows. Inoltre, lo scambio e la condivisione di file diventano sempre problematici, se fanno parte della rete computer su cui sono installati i sistemi operativi Linux o Unix. Installando il software Samba sul server, che permette la comunicazione tra i diversi terminali, vengono risolti questi problemi di compatibilità. Dato che il pacchetto Samba è composto da componenti open source, è completamente gratuito. Di seguito verranno spiegati i passaggi che servono per installare Samba su un server Linux.

Primo passaggio: installazione

Prima di tutto dovete decidere se agire direttamente sul server o volete accedere tramite connessione remota con un client. Poi date questo comando per installare il pacchetto Samba sul server:

apt-get install samba

Secondo passaggio: aggiungere account utente al database

Dopo l’installazione di Samba devono essere attivati gli account utente già esistenti. Alcune distribuzioni di Linux sincronizzano automaticamente quelli già presenti nel sistema e li aggiungono al database di Samba, per esempio se il pacchetto libpam-smbpass è già installato, vengono sincronizzate le password Linux e SMB. Altrimenti è necessario gestire manualmente gli account, in modo che gli utenti coinvolti possano accedere ai rispettivi servizi di rete.

La gestione degli account utente avviene tramite il comando smbpasswd ed è regolabile tramite quattro parametri a, -x, -d e –e. Le righe di comando da inserire sono le seguenti:

sudo smbpasswd -a NOMEUTENTE (PASSWORD)
sudo smbpasswd -x NOMEUTENTE
sudo smbpasswd -d NOMEUTENTE
sudo smbpasswd -e NOMEUTENTE

Con questo primo comando verrà aggiunto al database di Samba il rispettivo utente e verrà attivata la condivisione di rete. Direttamente dopo il nome utente si può assegnare e cambiare una password, che può essere uguale o differente da quella di Linux. Il secondo comando (-x) elimina l’utente dal database, con il parametro –d viene disattivato e con –e di nuovo attivato. Con il comando

sudo service smbd reload

viene riavviato il server per apportare le modifiche e caricare la nuova configurazione.

Terzo passaggio: impostare la condivisione dei file

Condivisione generale

Condivisioni generali possono essere stabilite nel file di configurazione di Samba. In questo file sono salvate tutte le condivisioni amministrative e le proprietà generali. Aprite il file con il seguente comando:

sudo gedit /etc/samba/smb.conf

Il file smb.conf contiene numerosi esempi commentati, che generalmente sono segnalati con un cancelletto (#) o un punto e virgola (;) e non sono attivi. Nel caso in cui vogliate attivare uno di questi esempi, basterà cancellare il carattere speciale. Nuove voci si aggiungono alla fine del file, scrivendo il nome generale sotto cui è disponibile la connessione di rete tra parentesi quadre. Segue nella seconda riga il percorso alla cartella e al file corrispondente e contestualmente vengono inserite le altre righe con i parametri da utilizzare. Ad esempio se volete condividere una cartella con le foto che l’utente deve poter modificare e deve essere consentito anche l’accesso agli ospiti, la voce da inserire nel file smb.conf è:

[Foto]
path= /documenti/foto
writeable = yes
guest ok = yes

Per rendere effettive le modifiche dovete riavviare Samba con il comando già indicato in precedenza:

sudo service smbd reload

Condivisioni personali

Per impostare delle condivisioni specifiche, l’utente in questione deve fare parte del gruppo sambashare. Utilizzate il seguente comando per aggiungere utenti a questo gruppo:

sudo usermod –aG sambashare NOMEUTENTE

L’appartenenza al gruppo è valida non appena l’utente si logga o riavvia Linux. Se a sua volta crea altre condivisioni, non vengono salvate nel file smb.conf, ma in un file di testo separato, generalmente nella cartella /var/lib/samba/usershares. Ognuno di questi file comprende il nome di condivisione (sharename), il percorso per giungere alla condivisione, un commento opzionale, Usershare ACL (che indica se la condivisione può solo essere letta o anche modificata) così come un altro parametro che mostra chi ha l’accesso. Ad esempio:

net usershare add Foto /documenti/foto Vacanze 2015 Everyone: r, USER1: f

Utilizzando questo comando, la cartella con lo sharename “foto” con il percorso “documenti/foto” è stata condivisa con il commento “vacanze 2015”. Tutti gli account utente di Samba possono leggere i file, USER1 ha tutti i permessi e può anche modificare la cartella. Per controllare le condivisioni si utilizzano i seguenti comandi:

net usershare list
net usershare info

Il primo comando elenca tutte le condivisioni in uso con il rispettivo nome di condivisione, mentre il secondo fornisce ulteriori dettagli come commenti, autorizzazioni, ecc. Qualora vogliate apportare modifiche al file, dovete procedere sempre tramite la riga di comando e mai scrivere direttamente nel file di testo usershares. Potete cancellare una condivisione con il comando:

net usershare delete SHARENAME

Samba: connessione di rete tra Windows e Linux

Se un utilizzo condiviso di stampanti e file in rete presenta delle problematiche per via dei diversi sistemi operativi, l’impiego di Samba è la perfetta soluzione per i client. La suite gratuita implementa il protocollo di reteSMB/CIFS nei sistemi Linux e Unix ed è per questo compatibile con le versioni Windows in rete, indipendentemente che si tratti di un client o di un server.

Il software Samba su un server Linux regola la condivisione dei file e dei servizi in rete come un server Windows e (dalla versione 4 di Samba) anche grazie alla capacità di ricoprire il ruolo di Domain Controller. Se volete installare Samba su un server e gestirlo, potete farlo comodamente dal vostro computer tramite accesso remoto.

Inoltre potete scegliere se utilizzare direttamente il prompt dei comandi o semplificarvi il lavoro, installando un’interfaccia grafica aggiuntiva.


Abbiamo una proposta per te:
Web hosting a partire da 1 €/mese!

Dominio gratis
Certificato SSL Wildcard incluso
Assistenza clienti 24/7
A partire da 1 €/mese IVA escl. per un anno,
poi 8 €/ mese IVA escl.