Sistemi Linux (UNIX) possono anche sfogliare e montare condivisioni SMB. Si noti che questo è possibile sia con server Windows che con server Samba.
Con la distribuzione Samba, è incluso un programma client del
protocollo SMB per macchine UNIX. Dispone di un'interfaccia a linea di
comando simile ad ftp
. Si può usare questo programma per trasferire
file tra un server Windows ed un client Linux.
La maggior parte delle distribuzioni Linux ora include l'utile pacchetto smbfs, che consente di montare e smontare condivisioni SMB.
Per elencare le condivisioni disponibili su un dato host, è sufficiente eseguire:
/usr/sbin/smbclient -L host
dove host
è il nome della macchina che si desidera interrogare.
Questo comando ritorna una lista di nomi di 'servizi', cioè nomi di
dischi o stampanti che si possono condividere. A meno che il server
SMB non sia configurato per nessuna sicurezza, sarà richiesto una
password. Potrebbe essere essere la password per
l'account guest
di quella macchina o per il proprio personale.
Per esempio:
smbclient -L zimmerman
L'output di questo comando dovrebbe somigliare a qualcosa del tipo:
Server time is Sat Aug 10 15:58:27 1996
Timezone is UTC+10.0
Password:
Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]
Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[]
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
public Disk Public
C$ Disk Default share
IPC$ IPC Remote IPC
OReilly Printer OReilly
print$ Disk Printer Drivers
This machine has a browse list:
Server Comment
--------- -------
HOPPER Samba 1.9.15p8
KERNIGAN Samba 1.9.15p8
LOVELACE Samba 1.9.15p8
RITCHIE Samba 1.9.15p8
ZIMMERMAN
Il "browse list" elenca altri server SMB sulla rete con risorse da condividere.
Per eseguire il client:
/usr/sbin/smbclient servizio <password>
dove 'servizio
' è il nome di macchina e servizio. Per esempio se si
desidera raggiungere una directory condivisa come 'public' su una
macchina chiamata 'zimmerman
', il servizio dovrebbe essere chiamato:
\\zimmerman\public
. Per le restrizioni
dell'interprete dei comandi (shell) potrebbe essere necessario
raddoppiare le barre inverse, qualcosa come:
/usr/sbin/smbclient \\\\zimmerman\\public mypasswd
dove 'mypasswd' è la propria password.
A questo punto smbclient
dovrebbe presentare la propria richiesta
comandi:
Server time is Sat Aug 10 15:58:44 1996
Timezone is UTC+10.0
Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]
smb: \>
Scrivendo 'h
' si ottiene aiuto per usare smbclient
:
smb: \> h
ls dir lcd cd pwd
get mget put mput rename
more mask del rm mkdir
md rmdir rd prompt recurse
translate lowercase print printmode queue
cancel stat quit q exit
newer archive tar blocksize tarmode
setmode help ? !
smb: \>
Se già si conosce ftp
, non dovrebbe essere necessario consultare le
pagine del manuale di smbclient
.
Nonostante si possa usare smbclient per verificare il funzionamento, è scomodo per l'uso comune. A questo punto potrebbe tornare utile il pacchetto smbfs. Smbfs dispone di due semplici utility, smbmount e smbumount che funzionano come mount e umount per condivisioni SMB.
Una cosa importante da notare: è necessario aver compilato il supporto SMB nel kernel per usare queste utility!
L'esempio seguente dimostra un tipico uso di smbmount per montare una condivisione SMB chiamata "customers" da una macchina di nome "samba1":
[root@postel]# smbmount "\\\\samba1\\customers" -U rtg2t -c 'mount /customers -u 500 -g 100'
Added interface ip=192.168.35.84 bcast=192.168.255.255 nmask=255.255.0.0
Got a positive name query response from 192.168.168.158 ( 192.168.168.158 )
Server time is Tue Oct 5 10:27:36 1999
Timezone is UTC-4.0
Password:
Domain=[IPM] OS=[Unix] Server=[Samba 2.0.3]
security=user
Il comando mount ora riporterà la condivisione montata, come se fosse un export NFS:
[root@postel]# mount
/dev/hda2 on / type ext2 (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,mode=622)
//SAMBA1/CUSTOMERS on /customers type smbfs (0)
Si consultino le pagine del manuale per dettagli su smbmount e smbumount ed il relativo uso.