Introduzione
Samba è una suite di strumenti utilizzati per la condivisione tra reti miste Windows-Linux, implementando il protocollo di rete SMB, il quale è il cuore del networking Windows.
Solitamente si avrà bisogno di samba per:
- agire come un client con server Windows: accesso a file e stampanti remote condivisi;
- agire da server per client Windows: condividere cartelle e stampanti, incluse pseudo-stampanti PDF;
- agire da controllore di domini in una rete Windows (autenticazione degli utenti, etc.);
- usare un controller Windows di domini per autenticare gli utenti di una macchina Linux, e molto altro ancora...
Installazione
Per creare una propria rete con samba, bisogna creare un server sul computer principale.
Il server è il componente che eroga il servizio, per esempio un server di mail.
I restanti computer della rete sono detti client. Essi accedono al servizio che mette a disposizione il server.
Stiamo parlando, anche, di condivisione di dati. Il server condivide i dati con i client.
Installare il pacchetto samba
Installare il pacchetto smbfs
Connessioni tra client e server
Se si desidera connettersi alla macchina server si hanno a disposizione due metodi differenti:
Connettersi da linea di comando
Ubuntu si connetterà ad un server Samba "out of the box" tramite il comando smbclient, simile ad una connessione FTP.
Una volta connessi si possono usare comandi come: ls, cd, put e get.
Connettersi tramite smbfs
Questo pacchetto permette ai clienti di montare in locale una condivisione di file con Samba in modo da apparire come se una partizione fosse localmente disponibile sulla propria macchina.
La maggior parte degli utenti di Samba preferisce questo metodo.
Configurazione
Da Ubuntu 8.04 e successive, la condivisione di cartelle è insita direttamente in Nautilus:
- Recarsi nella cartella che si vuole condividere.
Fare clic con il pulsante destro del mouse sulla cartella e scegliere Opzioni di condivisione.
Spuntare l'opzione Condividi questa cartella e fare clic su Crea condivisione
Ora samba è pronto per condividere file e cartelle in facilità. Per configurazioni più avanzate seguire i prossimi paragrafi. |
Configurazione avanzata
Tutti i parametri di configurazione di Samba sono presenti nel file /etc/samba/smb.conf, modificabile con un editor di testo e con i privilegi di amministrazione.
Ogni volta che si apportano delle modifiche al file sopra citato è necessario riavviare il servizio di Samba, digitando da riga di comando:
sudo /etc/init.d/samba restart
Autenticazione
Esistono due possibilità per accedere ad una condivisione samba, la prima è quella di creare un utente samba "virtuale" tramite il comando:
sudo smbpasswd -a utente
mentre il secondo è quello di accedere alle condivisioni tramite utente guest, aggiungendo alla sezione nel file smb.conf il parametro guest ok = yes
Gestione utenti samba
Tutta la gestione degli utenti samba viene fatta tramite il comando smbpasswd, da dove è possibile creare oppure eliminare utenti, per maggiori informazioni riguardo al comando
man smbpasswd
Gestione client
smbclient è un programma molto simile a client ftp da terminale, serve per visualizzare o connettersi a condivisioni samba presenti su server.
uno dei comandi più utilizzati è:
sudo smbclient -L IPServer
che permette di vedere tutte le cartelle condivise su un dato server.
Connessione al server
per connettersi ad un server samba si usa:
smbclient //SERVER/condivisione
Come detto prima i comandi del prompt sono uguali a quelli utilizzatati dal ftp in più mette a disposizione utilissimi tool per la gestione dei file, tramite il comando help è possibile avere maggiori informazioni riguardo ai comandi.
Sezione global
La sezione [global] si trova sempre all'inizio della configurazione del file /etc/samba/smb.conf e racchiude i principali parametri del server.
[global]
allow hosts = 192.168.1.0/24 # Range di IP che possono accedere al server
workgroup = WORKGROUP # Nome del gruppo di lavoro
netbios = SAMBA # Nome della macchina nel gruppo di lavoro
security = USER # Livello di sicurezza delle condivisioni
server string = FILE SERVER # Descrizione della macchina
create mask = 0755 # Permessi sulle cartelleNel parametro security si poteva utilizzare in alternativa il valore SHARE in modo da creare condivisioni liberamente accessibili, senza necessità di autenticazioni.
Montare condivisione
Per montare una condivisone Samba presente su un altro file server, si utilizza il comando smbmount presente nel pacchetto smbfs:
smbmount //SERVER/condivisione /punto/di/mount
Dove /punto/di/mount/ è una directory creata con privilegi di amministrazione solitamente in /media.
Condivisioni dei dispositivi
Condividere cartella
Esistono sostanzialmente due metodi per condividere una cartella, il primo più rapido e veloce, mentre il secondo modificando il file di configurazione di samba
Quello più rapido è tasto destro -> condividi cartella ed in seguito impostare i permessi su di essa.
Mentre il secondo metodo è quello di aggiungere la cartella nel file di configurazione di samba.
[shared]
comment = Cartella condivisa # Commento sulla condivisione
path = /cartella/da/condividere # Percorso della condivisione
browseable = yes # Rende visibile la condivisione
public = yes # Rende la cartella accessibile
create mask = 0755 # Permessi dei file
Condivisione Home
Anche se sconsigliato è possibile condividere per interno la home di un utente.
[homes]
comment = Home condivisa # Commento sulla condivisione
browseable = yes # Rende visibile la condivisione
valid users = %S # Utente che vi può accedere
create mask = 0700 # Permessi dei file
directory mask = 0700 # Permessi della home
Condivisione stampante tramite samba
Il sistema migliore per condividere una stampante è tramite IPP quello che è stato spiegato prima, però c'è anche la possibilità di condivisione tramite samba, con un editor di testo modificare il file /etc/samba/smb.conf ed aggiungere i seguenti parametri nella sezione [Global]
printing = cups # Server di sampa utilizzato load printers = yes # Caricare le stampanti
Inoltre bisogna creare la sezione [Printers]
[printers]
path = /var/spool/samba # Percorso dello spool di stampa
printable = yes # Stampante disponibilePoi creare la sezione per la specifica stampante
[HP]
comment = HP Printer # Commento sulla condivisione
path = /var/spool/samba # Percorso dello spool di stampa
browsable = yes # Permette la visualizzazione della lista delle risorse condiviseDi default ubuntu non crea la cartella /var/spool/samba quindi la si deve creare a mano, ed impostando i permessi di accesso.
sudo mkdir /var/spool/samba sudo chmod -R 755 /var/spool/samba
Condividere Dispositivi di lettura
È anche possibile condividere un supporto di lettura come il dvd oppure il cd:
[dvd]
comment = Lettore DVD+R # Commento sulla condivisione
preexec = mount /media/cdrom # Azione compiuta dopo la connessione alla condivisione
postexec = umount /media/cdrom # Azione compiuta dopo la disconnessione alla condivisione
path = /media/cdrom # Percorso della condivisione
writable = no # Se la condivisione è modificabile
Log di samba
Tutti i log di samba sono presenti nella cartella /var/log/samba, suddivisi in tre categorie, la prima è log.nmbd dove vengono annotate tutte le operazioni NETBIOS, il secondo è log.smbd dove vengono registrate tutte le operazioni sui protocolli SMB/CIFS e per finire per ogni connessione instaurata con client o server samba crea un file di log chiamati log.[IP_ADDRESS]
Interfaccia web
Samba dispone di anche un interfaccia web chiamata swat (Samba Web Administation Tool), il pacchetto è installabile dai repository ufficiali.
Per installare swat eseguire questo comando da terminale:
sudo apt-get install swat xinetd
Riavviare xinetd:
dpkg-reconfigure xinetd
Per accedere all'interfaccia web di samba inserire nella barra di navigazione di un Browser Web l'indirizzo
localhost:901
