下一页 上一页 目录

8. 使用 Linux 机器访问 SMB 共享

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 的手册页。


下一页 上一页 目录