Capitolo 3.   Samba dal lato cliente

Da una macchina GNU/Linux è possibile connettersi a un servente Samba o a macchine MS-Windows per accedere alle risorse che queste condividono grazie a una serie di strumenti che costituiscono il «lato cliente» di Samba.

A questi strumenti può essere aggiunto il nuovo comando net utilizzabile anche per collegarsi a serventi SMB/CIFS come visto in uno degli esempi dell'ultimo paragrafo del capitolo precedente (2.4).

3.1   smbclient

Il primo programma da esaminare è smbclient che si usa fondamentalmente in due maniere:

smbclient -L nome_serv_samba

per avere la lista delle risorse condivise dal servente; oppure:

smbclient nome_servizio [-U nominativo_utente]

per connettersi alla risorsa nome_servizio (ad esempio //serv_samba/public). Se la connessione ha successo si ha a disposizione un'interfaccia testuale del tutto simile a quella del programma ftp tradizionale, dove si possono eseguire più o meno gli stessi comandi (get, put, cd, pwd, ecc.).

Un'opzione importante è -I seguita da un numero IP, con la quale si può appunto indicare il numero IP del servente a cui ci si vuole connettere.

3.2   smbmount

Sicuramente l'interfaccia messa a disposizione da smbclient non è il massimo della comodità; sarebbe molto meglio poter disporre della risorsa condivisa da un'altra macchina come se fosse una risorsa locale.

Anche questo si può ottenere con Samba, in particolare grazie a smbmount, oppure grazie al più «moderno» mount.cifs (o mount -t cifsche è sostanzialmente equivalente riguardo alla sintassi e alle opzioni.

La sintassi è:

smbmount nome_servizio punto_di_innesto [-o opzioni]

Ad esempio:

smbmount //serv_samba/public /mnt/dir_samba -o username=tizio%parola_d'ordine

Per smontare la risorsa si può usare il comando:

smbumount punto_di_innesto

È anche possibile ottenere l'inserimento automatico della risorsa all'avvio di GNU/Linux con la riga seguente nel file /etc/fstab:

//serv_samba/public    /mnt/dirsamba    smbfs     username=tizio%parola_d'ordine

È importante ribadire che in questa sede non viene illustrata la sintassi completa dei vari comandi con l'elenco di tutte le opzioni possibili. Per avere queste informazioni si deve consultare la documentazione dei vari pacchetti e il manuale in linea (per esempio smbpasswd(8)).

3.3   Uso con Samba di stampanti MS-Windows

Per usare su una macchina GNU/Linux una stampante condivisa da una macchina MS-Windows, occorre impostare in modo opportuno il file di definizione delle stampanti GNU/Linux: /etc/printcap.

Ecco un esempio di righe di configurazione da aggiungere a tale scopo:

stsamba:\
   :mx=0:\
   :sh:\ 
   :sd=/var/spool/lpd/stsamba:\
   :lp=/dev/null:\
   :af=/var/spool/lpd/stsamba/acct:\
   :if=/usr/bin/smbprint:

Una breve spiegazione sul significato di queste righe è necessaria, anche se lo studio del file di configurazione delle stampanti in GNU/Linux esula dallo scopo di questo documento:

mx=0 indica nessun limite di grandezza dei file da stampare;

sd= indica la directory della coda per questa stampante;

lp=/dev/null indica che la stampante non è collegata ad alcuna porta (non è locale);

af= indica il nome del file per registrare le transazioni;

if= indica il nome del filtro da usare per la stampa; quello usato nell'esempio è un filtro fornito in modo predefinito con la distribuzione Red Hat all'interno del pacchetto samba-client.

Affinché il tutto funzioni è poi necessaria la presenza del file .config nella directory della coda indicata con la riga sd=. Un esempio del suo contenuto è il seguente:

   share="//serv_samba/nome_stampante_condivisa"
   user="tizio"
   password="blablabla"

Data la complessità della configurazione manuale di una stampante SMB in GNU/Linux (e anche di una stampante in generale), può essere consigliabile l'uso di strumenti appositi che semplificano molto queste operazioni; un esempio può essere printconf-gui oppure, se si usa CUPS, la sua interfaccia WEB richiamabile collegandosi a localhost:631.

3.4   Altri strumenti utili

Altri comandi presenti nel pacchetto samba-client sono:

nmblookup che permette di trovare il numero IP di una macchina fornendo il nome NetBIOS;

findsmb che fornisce informazioni sui serventi Samba presenti in rete;

smbtar che permette di effettuare copie di sicurezza di risorse SMB su unità a nastro installate sul servente GNU/Linux.

Per i dettagli di uso di questi comandi si rimanda ai rispettivi manuali in linea.