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!