Capitolo 1.   Informazioni generali su Samba

Samba (1) è un insieme di strumenti realizzati da Andrew Tridgell per le piattaforme Unix e GNU/Linux, distribuito sotto licenza GNU GPL, curato da un piccolo gruppo di persone di varie parti del mondo coordinate dallo stesso Tridgell.

1.1   Natura di Samba

Samba utilizza il protocollo SMB (Server Message Block) definito per reti MS-Windows e a sua volta basato sull'interfaccia di rete NetBIOS (Network Basic Input Output System). SMB è stato progettato originariamente per reti molto piccole. Per permettere la connessione a reti più estese ed eterogenee, Microsoft ha sviluppato il sistema CIFS (Common Internet File System) ancora basato su NetBIOS.

Samba può essere a tutti gli effetti considerato una versione libera e gratuita di CIFS; con esso, una macchina GNU/Linux, può accedere alle risorse condivise di un elaboratore MS-Windows ma anche mettere a disposizione proprie risorse a clienti MS-Windows o GNU/Linux.

Più in dettaglio ecco quali sono i servizi offerti da Samba:

Dalla versione 3 (rilasciata nel settembre 2003), abbiamo anche:

La versione 3 di Samba ha portato poi altre novità e miglioramenti, forse meno vistosi, ma ugualmente importanti:

È sicuramente anche il caso di elencare ciò che Samba non può fare (almeno per il momento):

Riguardo ai protocolli coinvolti nel funzionamento di Samba, è necessario far presente che MS-Windows può incapsulare messaggi SMB sui protocolli IPX/SPX, NetBEUI e TCP/IP mentre Samba può dialogare con macchine MS-Windows solo attraverso il TCP/IP. Questa non è comunque una grande limitazione vista la diffusione ormai universale di tale protocollo

La descrizione di come NetBIOS debba operare all'interno di una rete TCP/UDP è contenuta nei documenti RFC 1001/1002. Lo standard descritto in questi documenti è noto come NBT ( NetBIOS Over TCP/IP) ) ed è alla base del funzionamento sia delle reti NetBIOS che di Samba.

1.2   Componenti di Samba

Come detto viene presa in esame la versione 3 di Samba.

I pacchetti da installare si differenziano in base alla distribuzione GNU/Linux usata; qui si fa riferimento alla Fedora Core e alla Ubuntu (derivata da Debian, quindi le informazioni fornite sono valide quasi interamente anche per quest'ultima).

Nel nome dei pacchetti si fa riferimento al generico numero di versione con la notazione x.y.z; per Ubuntu, prima dell'estensione «.deb» è presente l'indicazione della versione di Ubuntu (ad esempio ubuntu3) che qui non viene riportata.

Per la Fedora i pacchetti da usare sono:

Il primo pacchetto contiene gli strumenti lato servente di Samba, il secondo gli strumenti lato cliente, il terzo una serie di file indispensabili per il funzionamento sia del servente che del cliente.

Entrando più nel dettaglio:

Per la distribuzione Ubuntu la situazione è leggermente diversa; i pacchetti da considerare sono:

I primi due pacchetti sono più o meno analoghi a quelli di Fedora; la parte cliente viene invece suddivisa nei pacchetti smbfs (contenente i comandi smbmount, smbumount), smbclient e libsmbclient (per il comando smbclient), mentre il programma winbind con le sue librerie è in un pacchetto a parte.

Tutti questi elementi sono presi in considerazione nel seguito di questo documento.


1) Samba   GNU GPL

2) Un demone è un programma di servizio costantemente in esecuzione e pronto a rispondere a richieste a esso rivolte da altri processi in esecuzione localmente o da una posizione remota