FreeBSD連載(69):使用smbclient訪問Windows資源
通過配置Samba服務(wù)器,可以提供Windows客戶機(jī)來訪問FreeBSD系統(tǒng)上共享的資源。也能夠在FreeBSD上通過SMB協(xié)議訪問Windows系統(tǒng)上的共享資源。只是習(xí)慣上Unix計(jì)算機(jī)用做服務(wù)器,Windows計(jì)算機(jī)用做客戶機(jī),很少有讓Unix訪問Windows計(jì)算機(jī)的需要。但是越來越多的計(jì)算機(jī)使用者不但使用Unix作服務(wù)器,也使用Unix來處理很多其他任務(wù),那么就可能會需要訪問其他Windows計(jì)算機(jī)上的資源。
使用smbclIEnt訪問Windows資源
samba軟件中用于訪問網(wǎng)絡(luò)上其他SMB資源的軟件為smbclient,它是一個類似于ftp操作方式,通過遠(yuǎn)程操作的方式進(jìn)行文件傳遞的軟件。為了獲得網(wǎng)絡(luò)上可以訪問的計(jì)算機(jī)列表,首先需要使用smbclient來獲得一個Windows計(jì)算機(jī)共享出來的資源,這需要使用-L參數(shù)訪問IPC$資源,對于使用用戶級認(rèn)證的Windows NT或Samba服務(wù)器,可以使用-N參數(shù)指定使用空口令登錄,或者使用-U%參數(shù),使用空用戶名和空口令訪問服務(wù)器:
$ smbclient -L windows_host -N如果沒有使用-N或-U%,smbclient將提示口令,一般可以直接回車,也可以給予正確的口令。因?yàn)橐话阌?jì)算機(jī)均允許匿名瀏覽IPC$資源,即能給所有的計(jì)算機(jī)提供自己所了解的瀏覽數(shù)據(jù)。smbclient將顯示一個瀏覽數(shù)據(jù)列表和該機(jī)的共享資源列表。
如果不清楚一個Windows計(jì)算機(jī)的NetBIOS名字,可以使用-I加要訪問計(jì)算機(jī)的IP地址來代替-L參數(shù)及使用的NetBIOS名字。或者可以使用nmblookup先來解析NetBIOS名字。
$ nmblookup fbsdsrvSending queries to 192.168.3.255192.168.3.1 fbsdsrv要想使用smbclient來訪問windows時,也需要使用UNC來標(biāo)識Windows資源的位置。此時就需要了解Windows UNC在Unix下進(jìn)行表示的不同之處。不同之處在于Unix的shell下反斜線為特殊字符,它被定義為轉(zhuǎn)義恢復(fù)字符,表示將一些轉(zhuǎn)義字符恢復(fù)為其本身字符的意義。因此必須使用兩個反斜線才能等同于一個反斜線。因此一個UNC實(shí)際使用時應(yīng)使用雙倍的反斜線。
$ 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:> helpls dir du lcd cdpwd get mget put mputrename more mask del rmmkdirmd rmdirrd promptrecursetranslate lowercase printprintmodequeuecancel quit q exitnewerarchivetar blocksize tarmodesetmodehelp ? !smb:> quit然后就可以使用與ftp相似的命令,如dir,cd,get,put等命令來傳輸文件。
Samba可以用于幫助備份Windows系統(tǒng),除了使用smbclient之外,Samba還提供了一個shell腳本smbtar,它使用smbclient以及tar,直接將Windows系統(tǒng)中的文件備份到FreeBSD系統(tǒng)中的磁帶設(shè)備中。
要使用Windows下的打印機(jī)資源,要首先使用smbclient以將打印文檔發(fā)送給Windows計(jì)算機(jī),并執(zhí)行print命令。samba軟件包中提供了一個shell腳本smbprint用來使用合適的命令幫助FreeBSD將打印文件發(fā)送給Windows打印機(jī)。FreeBSD下這個腳本被安裝到/usr/local/share/examples/samba/printing目錄下,可以根據(jù)需要將這個腳本復(fù)制到/usr/local/bin或其他目錄下,提供給用戶使用。
對于經(jīng)常使用的Windows打印機(jī),還可以在printcap文件中為它增加一個入口,使用smbprint作過濾器,這樣就將打印輸出直接交給smbprint,用戶不必手工進(jìn)行控制,而是直接使用FreeBSD系統(tǒng)的打印系統(tǒng)lpr等命令進(jìn)行打印和管理。這樣還可以將這臺FreeBSD計(jì)算機(jī)用做一個打印網(wǎng)關(guān),所有的支持LPD方式打印的Unix均可通過這臺服務(wù)器的smbprint打印機(jī)入口,將打印文檔發(fā)送給Windows打印機(jī)。
未完,待續(xù)。。。
