Linux (UNIX) 机器也可以浏览和挂载 SMB 共享。请注意,无论服务器是 Windows 机器还是 Samba 服务器,都可以这样做!
Samba 发行版包含一个用于 UNIX 机器的 SMB 客户端程序。它在命令行上提供类似 ftp 的界面。您可以使用此实用程序在 Windows“服务器”和 Linux 客户端之间传输文件。
大多数 Linux 发行版现在还包含了有用的 smbfs 软件包,它允许用户挂载和卸载 SMB 共享。下面将详细介绍 smbfs。
要查看给定主机上可用的共享,请运行
/usr/bin/smbclient -L host
其中“host”是您要查看的机器的名称。这将返回一个“服务”名称列表 - 即它可以与您共享的驱动器或打印机的名称。除非 SMB 服务器没有配置安全设置,否则它会要求您输入密码。获取“guest”帐户或您在该机器上的个人帐户的密码。
例如
smbclient -L zimmerman
此命令的输出应如下所示
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
浏览列表显示了网络上其他具有共享资源的 SMB 服务器。
要使用客户端,请运行
/usr/bin/smbclient service <password>
其中“service”是机器和共享名称。例如,如果您尝试访问在名为 zimmerman 的机器上共享为“public”的目录,则服务将被称为 \\zimmerman\public。但是,由于 shell 限制,您需要转义反斜杠,因此最终得到类似这样的结果
/usr/bin/smbclient \\\\zimmerman\\public mypasswd
其中“mypasswd”是您的密码的字面字符串。
您将获得 smbclient 提示符
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: \>
键入“h”以获取使用 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: \>
如果您可以使用 ftp,则应该不需要 smbclient 的手册页。
虽然您可以使用 smbclient 进行测试,但对于实际工作,您很快就会厌倦它。为此,您可能需要使用 smbfs 软件包。Smbfs 附带两个简单的实用程序,smbmount 和 smbumount。它们的工作方式与用于 SMB 共享的 mount 和 umount 类似。
需要注意的重要事项:您必须将 smbfs 支持编译到内核中才能使用这些实用程序!
以下显示了使用 smbmount 从名为“samba1”的机器挂载名为“customers”的 SMB 共享的典型用法
[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
发出 mount 命令现在将显示已挂载的共享,就像它是 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)
有关上述操作的详细信息,请参阅 smbmount 和 smbumount 的手册页。