FreeBSD使用smbclient訪問Windows資源(轉)

gugu99發表於2007-08-11
FreeBSD使用smbclient訪問Windows資源(轉)[@more@]

  透過配置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 fbsdsrv

      Sending queries to 192.168.3.255

      192.168.3.1 fbsdsrv<00>

        要想使用smbclient來訪問windows時,也需要使用UNC來標識Windows資源的位置。此時就需要了解 Windows UNC在Unix下進行表示的不同之處。不同之處在於Unix的shell下反斜線為特殊字元,它被定義為轉義恢復字元,表示將一些跳脫字元恢復為其本身字元的意義。因此必須使用兩個反斜線才能等同於一個反斜線。因此一個UNC實際使用時應使用雙倍的反斜線。

      $ smbclient localhostwb -U wb

      Added interface ip=192.168.3.1 bcast=192.168.3.255 nmask=255.255.255.0

      Password:

      Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.0.2]

      smb: > help

      ls       dir      du       lcd      cd

      pwd      get      mget      put      mput

      rename     more      mask      del      rm

      mkdir     md       rmdir     rd       prompt

      recurse    translate   lowercase   print     printmode

      queue     cancel     quit      q       exit

      newer     archive    tar      blocksize   tarmode

      setmode    help      ?       !

      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或其他目錄下,提供給使用者使用。

        對於經常使用的Windows印表機,還可以在printcap檔案中為它增加一個入口,使用smbprint 作過濾器,這樣就將列印輸出直接交給smbprint,使用者不必手工進行控制,而是直接使用FreeBSD系統的列印系統lpr等命令進行列印和管理。這樣還可以將這臺FreeBSD計算機用做一個列印閘道器,所有的支援LPD方式列印的Unix均可透過這臺伺服器的smbprint印表機入口,將列印文件傳送給Windows印表機。

    • 來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-944631/,如需轉載,請註明出處,否則將追究法律責任。

      相關文章