Cos’è Samba?

Samba è una suite di strumenti gratuiti, in­stal­la­bi­le sul server. Il pacchetto con licenza GNU è un’im­ple­men­ta­zio­ne del pro­to­col­lo di rete SMB (che in pre­ce­den­za dava il nome alla suite) nelle di­stri­bu­zio­ni Linux e Unix.  Il pro­to­col­lo 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 ori­gi­na­ria­men­te re­spon­sa­bi­le nei sistemi operativi Windows per servizi di file, stampanti e altri processi server. At­tra­ver­so l’im­ple­men­ta­zio­ne viene sup­por­ta­ta l’in­te­gra­zio­ne nella rete di computer Windows, Linux e Unix, in modo che possano essere scambiati fa­cil­men­te i dati e uti­liz­za­te le stampanti presenti, in­di­pen­den­te­men­te 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 con­trol­ler (DC), basato sul servizio Active Directory (AD), per­met­ten­do così l’au­to­riz­za­zio­ne centrale e l’au­ten­ti­fi­ca­zio­ne dei computer e degli utenti all’interno della rete.

Per poter con­fi­gu­ra­re i pro­to­col­li SMB e CIFS, la suite di Samba necessita di alcuni moduli. I quattro demoni seguenti (servizi che operano nel back­ground) ne co­sti­tui­sco­no il nucleo:

  • samba: demone aggiunto nella versione quattro che gli consente di svolgere il ruolo di Domain Con­trol­ler; viene con­fi­gu­ra­to tramite il file smb.conf.
  • smbd: re­spon­sa­bi­le della con­di­vi­sio­ne dei file e delle stampanti, si configura tramite smb.conf.
  • nmbd: si occupa della ri­so­lu­zio­ne dei nomi del NetBIOS negli indirizzi IP e può essere ugual­men­te con­fi­gu­ra­to tramite il file smb.conf.
  • winbindd: risolve le in­for­ma­zio­ni sui gruppi e sugli utenti, ren­den­do­li chiari per i sistemi Unix e Linux, e offre delle proprie pos­si­bi­li­tà di con­fi­gu­ra­zio­ne.

In­stal­la­re Samba sul server: come funziona

Il pro­to­col­lo standard SMB/CIFS serve per una facile con­di­vi­sio­ne di rete su Windows. Inoltre, lo scambio e la con­di­vi­sio­ne di file diventano sempre pro­ble­ma­ti­ci, se fanno parte della rete computer su cui sono in­stal­la­ti i sistemi operativi Linux o Unix. In­stal­lan­do il software Samba sul server, che permette la co­mu­ni­ca­zio­ne tra i diversi terminali, vengono risolti questi problemi di com­pa­ti­bi­li­tà. Dato che il pacchetto Samba è composto da com­po­nen­ti open source, è com­ple­ta­men­te gratuito. Di seguito verranno spiegati i passaggi che servono per in­stal­la­re Samba su un server Linux.

Primo passaggio: in­stal­la­zio­ne

Prima di tutto dovete decidere se agire di­ret­ta­men­te sul server o volete accedere tramite con­nes­sio­ne remota con un client. Poi date questo comando per in­stal­la­re il pacchetto Samba sul server:

apt-get install samba

Secondo passaggio: ag­giun­ge­re account utente al database

Dopo l’in­stal­la­zio­ne di Samba devono essere attivati gli account utente già esistenti. Alcune di­stri­bu­zio­ni di Linux sin­cro­niz­za­no au­to­ma­ti­ca­men­te quelli già presenti nel sistema e li ag­giun­go­no al database di Samba, per esempio se il pacchetto libpam-smbpass è già in­stal­la­to, vengono sin­cro­niz­za­te le password Linux e SMB. Al­tri­men­ti è ne­ces­sa­rio gestire ma­nual­men­te gli account, in modo che gli utenti coinvolti possano accedere ai ri­spet­ti­vi servizi di rete.

La gestione degli account utente avviene tramite il comando smbpasswd ed è re­go­la­bi­le 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 ri­spet­ti­vo utente e verrà attivata la con­di­vi­sio­ne di rete. Di­ret­ta­men­te dopo il nome utente si può assegnare e cambiare una password, che può essere uguale o dif­fe­ren­te da quella di Linux. Il secondo comando (-x) elimina l’utente dal database, con il parametro –d viene di­sat­ti­va­to 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 con­fi­gu­ra­zio­ne.

Terzo passaggio: impostare la con­di­vi­sio­ne dei file

Con­di­vi­sio­ne generale

Con­di­vi­sio­ni generali possono essere stabilite nel file di con­fi­gu­ra­zio­ne di Samba. In questo file sono salvate tutte le con­di­vi­sio­ni am­mi­ni­stra­ti­ve e le proprietà generali. Aprite il file con il seguente comando:

sudo gedit /etc/samba/smb.conf

Il file smb.conf contiene numerosi esempi com­men­ta­ti, che ge­ne­ral­men­te sono segnalati con un can­cel­let­to (#) o un punto e virgola (;) e non sono attivi. Nel caso in cui vogliate attivare uno di questi esempi, basterà can­cel­la­re il carattere speciale. Nuove voci si ag­giun­go­no alla fine del file, scrivendo il nome generale sotto cui è di­spo­ni­bi­le la con­nes­sio­ne di rete tra parentesi quadre. Segue nella seconda riga il percorso alla cartella e al file cor­ri­spon­den­te e con­te­stual­men­te vengono inserite le altre righe con i parametri da uti­liz­za­re. Ad esempio se volete con­di­vi­de­re una cartella con le foto che l’utente deve poter mo­di­fi­ca­re e deve essere con­sen­ti­to 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 pre­ce­den­za:

sudo service smbd reload

Con­di­vi­sio­ni personali

Per impostare delle con­di­vi­sio­ni spe­ci­fi­che, l’utente in questione deve fare parte del gruppo sam­ba­sha­re. Uti­liz­za­te il seguente comando per ag­giun­ge­re utenti a questo gruppo:

sudo usermod –aG sambashare NOMEUTENTE

L’ap­par­te­nen­za al gruppo è valida non appena l’utente si logga o riavvia Linux. Se a sua volta crea altre con­di­vi­sio­ni, non vengono salvate nel file smb.conf, ma in un file di testo separato, ge­ne­ral­men­te nella cartella /var/lib/samba/user­sha­res. Ognuno di questi file comprende il nome di con­di­vi­sio­ne (sharename), il percorso per giungere alla con­di­vi­sio­ne, un commento opzionale, Usershare ACL (che indica se la con­di­vi­sio­ne può solo essere letta o anche mo­di­fi­ca­ta) 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

Uti­liz­zan­do 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 mo­di­fi­ca­re la cartella. Per con­trol­la­re le con­di­vi­sio­ni si uti­liz­za­no i seguenti comandi:

net usershare list
net usershare info

Il primo comando elenca tutte le con­di­vi­sio­ni in uso con il ri­spet­ti­vo nome di con­di­vi­sio­ne, mentre il secondo fornisce ulteriori dettagli come commenti, au­to­riz­za­zio­ni, ecc. Qualora vogliate apportare modifiche al file, dovete procedere sempre tramite la riga di comando e mai scrivere di­ret­ta­men­te nel file di testo user­sha­res. Potete can­cel­la­re una con­di­vi­sio­ne con il comando:

net usershare delete SHARENAME

Samba: con­nes­sio­ne di rete tra Windows e Linux

Se un utilizzo condiviso di stampanti e file in rete presenta delle pro­ble­ma­ti­che per via dei diversi sistemi operativi, l’impiego di Samba è la perfetta soluzione per i client. La suite gratuita im­ple­men­ta il pro­to­col­lo di rete SMB/CIFS nei sistemi Linux e Unix ed è per questo com­pa­ti­bi­le con le versioni Windows in rete, in­di­pen­den­te­men­te che si tratti di un client o di un server.

Il software Samba su un server Linux regola la con­di­vi­sio­ne 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 Con­trol­ler. Se volete in­stal­la­re Samba su un server e gestirlo, potete farlo co­mo­da­men­te dal vostro computer tramite accesso remoto.

Inoltre potete scegliere se uti­liz­za­re di­ret­ta­men­te il prompt dei comandi o sem­pli­fi­car­vi il lavoro, in­stal­lan­do un’in­ter­fac­cia grafica ag­giun­ti­va.

Vai al menu prin­ci­pa­le