FileServer con Samba

Creato il 15 aprile 2012 da Alexiovk @archlinuxitalia

Samba è un utility multipiattaforma che permette la condivisione di risorse tra più computer, anche con sistema operativo differente. In questo articolo, vedremo come realizzare un piccolo FileServer utilizzando il protocollo smb per condividere cartelle, stampanti e scanner con tutti i client presenti all’interno della nostra rete, siano essi Linux o Windows, attraverso l’inserimento di username e password.

Configurare il Server

Il primo passo da fare è installare il pacchetto samba reperibile dai repository ufficiali e installabile tramite il comando:

$ sudo pacman -Sy samba

completata l’installazione procediamo con la configurazione del server condividendo nell’esempio che utilizzeremo:

  •  una cartella pubblica accessibile da tutti gli utenti presenti nel gruppo sambauser.
  •  una cartella privata accessibile solo all’utente “Alexio”
  •  una stampante condivisa
  •  uno scanner condiviso in rete

Il file di configurazione di default (/etc/samba/smb.conf.default) è molto ben documentato quindi lo consiglio per una configurazione standard di samba. In questo tutorial utilizzeremo una configurazione vuota e spiegheremo l’utilizzo di una condivisone protetta da password.

Il primo passo è la creazione degli utenti che avranno accesso al server samba. Per fare questo l’utente deve prima essere creato localmente con il comando:

$ sudo useradd <username>

e aggiunto a samba con il comando:

$ sudo pdbedit -a -u <username>

Creiamo il gruppo sambauser con il comando:

$ sudo groupadd sambauser

e aggiungiamo l’utente appena creato al gruppo:

$ sudo gpasswd -a <username> sambauser

per eliminare invece un utente i comandi sono:

$ sudo userdell <username>
$ sudo pdbedit -x <username>

una volta creati gli utenti ad esempio alexio, pippo, pluto e paperino e aggiunti al gruppo sambauser con la procedura sopra indicata. Procediamo con la creazione del file di configurazione di samba “smb.conf“:

$ sudo touch /etc/samba/smb.conf

editiamolo con il nostro editor preferito inserendo le prime direttive che che definiscono “in parole povere” le impostazioni del server samba che stiamo creando. Aggiungiamo quindi le seguenti righe:

[global]
 workgroup = WORKGROUP  # nome del gruppo
 server string = Samba Server  # commento del server
 netbios name = SMB_SERVER # nome netbios
 security = user   # richiesta username e password
 encrypt passwords = yes
 guest account = mark
 name resolve order = hosts wins bcast
 wins support = no
 max log size = 100
 log level = 1
 log file = /var/log/samba/%m.log

A questo punto abbiamo definito che l’accesso alle share che creeremo sarà accessibile solo agli utenti definiti inserendo username e password.

A questo punto aggiungiamo la direttiva che permette a tutti gli utenti del gruppo sambauser di accedere alla cartella “Condivisa” posta in “/opt/condivisa“, aggiungendo le righe:

[condivisa]   # nome della share
 comment = share condivisa  # commento
 path = /opt/condivisa  # percorso cartella
 available = yes
 browsable = yes   # visibile
 valid users = @sambauser  # utenti abilitati: tutto il gruppo sambauser
 writable = yes   # accesso di scrittura

Ora abbiamo definito che la cartella “condivisa” è accessibile da tutti gli utenti presenti nel gruppo sambauser e in cui tutti possono leggere e scrivere.

Ora definiamo la direttiva che ci permette di abilitare solo l’utente “Alexio” alla lettura e scrittura della directory “/opt/alexio“. Aggiungiamo le righe:

[alexio]
 comment = Cartella Alexio
 path = /opt/alexio
 valid users = alexio
 invalid users = pluto pippo paperino
 writable = yes
 browsable = no

In questo modo abbiamo abilitato solo l’utente alexio ad accedervi ed escluso gli altri utenti sia alla lettura sia alla scrittura. Questo può essere molto valido se si vuole creare cartelle di backup dove sincronizzare i propri dati utente, o addirittura di utilizzarle come directory di “home” e montarle sul client.

* NOTA Ricordiamo che le directory deveno avere i permessi appropriati.

A questo punto salviamo la configurazione e avviamo samba con il comando:

$ sudo rc.d start samba

se vogliamo che samba parta all’avvio in modo automatico, inseriamo il demone nell’array DAEMONS nel file di configurazione /etc/rc.conf in questo modo:

DAEMONS=(... network samba ...)

Per condividere una Stampante e uno Scanner in rete seguiamo queste guide:

  • Condivisione della stampante con CUPS e samba
  • Condivisione dello Scanner in rete

Configurare un client

Per poter accedere alle condivisione appena create con un SO ArchLinux o Linux basta semplicemente seguire la GUIDA presete sulla Wiki Ufficiale dove viene descritto in modo chiaro e semplice. Per gli utenti Windows invece, essendo davvero banale non necessita di alcuna spiegazione, almeno su questo Blog.

Buona condivisione!