69 FreeBSD连载:使用smbclient访问Windows资源

访问Windows系统资源通过配置Samba服务器 , 可以提供Windows客户机来访问FreeBSD系统上共享的资源 。也能够在FreeBSD上通过SMB协议访问Windows系统上的共享资源 。只是习惯上Unix计算机用做服务器 , Windows计算机用做客户机 , 很少有让Unix访问Windows计算机的需要 。但是越来越多的计算机使用者不但使用Unix作服务器 , 也使用Unix来处理很多其他任务 , 那么就可能会需要访问其他Windows计算机上的资源 。
使用smbclIEnt访问Windows资源
samba软件中用于访问网络上其他SMB资源的软件为smbclient , 它是一个类似于ftp操作方式 , 通过远程操作的方式进行文件传递的软件 。为了获得网络上可以访问的计算机列表 , 首先需要使用smbclient来获得一个Windows计算机共享出来的资源 , 这需要使用-L参数访问IPC$资源 , 对于使用用户级认证的Windows NT或Samba服务器 , 可以使用-N参数指定使用空口令登录 , 或者使用-U%参数 , 使用空用户名和空口令访问服务器:
$ smbclient -L windows_host -N如果没有使用-N或-U% , smbclient将提示口令 , 一般可以直接回车 , 也可以给予正确的口令 。因为一般计算机均允许匿名浏览IPC$资源 , 即能给所有的计算机提供自己所了解的浏览数据 。smbclient将显示一个浏览数据列表和该机的共享资源列表 。
如果不清楚一个Windows计算机的NetBIOS名字 , 可以使用-I加要访问计算机的IP地址来代替-L参数及使用的NetBIOS名字 。或者可以使用nmblookup先来解析NetBIOS名字 。
$ nmblookup fbsdsrvSending queries to 192.168.3.255192.168.3.1 fbsdsrv要想使用smbclient来访问windows时 , 也需要使用UNC来标识Windows资源的位置 。此时就需要了解Windows UNC在Unix下进行表示的不同之处 。不同之处在于Unix的shell下反斜线为特殊字符 , 它被定义为转义恢复字符 , 表示将一些转义字符恢复为其本身字符的意义 。因此必须使用两个反斜线才能等同于一个反斜线 。因此一个UNC实际使用时应使用双倍的反斜线 。
$ smbclient localhostwb -U wbAdded interface ip=192.168.3.1 bcast=192.168.3.255 nmask=255.255.255.0PassWord:Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.0.2]smb: > helplsdirdulcdcdpwdgetmget putmputrename more mask delrmmkdirmdrmdirrdpromptrecursetranslatelowercaseprintprintmodequeuecancel quit qexitnewerarchivetarblocksizetarmodesetmodehelp ?!smb: > quit然后就可以使用与ftp相似的命令 , 如dir , cd , get , put等命令来传输文件 。
Samba可以用于帮助备份Windows系统 , 除了使用smbclient之外 , Samba还提供了一个shell脚本smbtar , 它使用smbclient以及tar , 直接将Windows系统中的文件备份到FreeBSD系统中的磁带设备中 。
要使用Windows下的打印机资源 , 要首先使用smbclient以将打印文档发送给Windows计算机 , 并执行print命令 。samba软件包中提供了一个shell脚本smbprint用来使用合适的命令帮助FreeBSD将打印文件发送给Windows打印机 。FreeBSD下这个脚本被安装到/usr/local/share/examples/samba/printing目录下 , 可以根据需要将这个脚本复制到/usr/local/bin或其他目录下 , 提供给用户使用 。
【69 FreeBSD连载:使用smbclient访问Windows资源】对于经常使用的Windows打印机 , 还可以在printcap文件中为它增加一个入口 , 使用smbprint作过滤器 , 这样就将打印输出直接交给smbprint , 用户不必手工进行控制 , 而是直接使用FreeBSD系统的打印系统lpr等命令进行打印和管理 。这样还可以将这台FreeBSD计算机用做一个打印网关 , 所有的支持LPD方式打印的Unix均可通过这台服务器的smbprint打印机入口 , 将打印文档发送给Windows打印机 。
未完 , 待续 。。。

    推荐阅读