smb(server message block)通信協定是微軟(microsoft)和英特爾(intel)在1987年制定的協定,主要是作為microsoft網絡的通訊協定。smb 是在會話層(session layer)和表示層(presentation layer)以及小部分應用層(application layer)的協定。smb使用了netbios的應用程式接口 (application program interface,簡稱api)。另外,它是一個開放性的協定,允許了協定擴充——使得它變得更大而且複雜;大約有65個最上層的作業,而每個作業都超過120個函數,甚至windows nt也沒有全部支援到,最近微軟又把 smb 改名為 cifs(common internet file system),并且加入了許多新的特色。
在僅有 windows 系統的網絡中,通常使用 smb 協定來共享列印機.
用smb協定在linux和windows進行資料共享是區域網路内經常遇到的事,話說這個smb協定絕對是個兩面派,不管是linux還是windows,兩頭都能說上幾句話,頗似當年的“翻譯官”.
在windows下通路linux上的共享資料很容易,最菜也是最友善的辦法是直接在網路上的芳鄰裡搜尋,輸入linux系統的ip、使用者名、密碼就搞定。但反過來就不是特别友善了(與windows相比而言,誰讓windows就是那麼友善呢),比如你首先得确認windows系統上的共享資源,這需要用下面這個指令:
smbclinet -l 對方的ip位址 -u 使用者名
确認後系統會要你輸入密碼,然後你才能看到windows上的共享資源。但現在隻是能看而已,你接下來還得把這個共享資源挂載到自己的機器上,是以你會用到下面這種複雜到bt的指令,更糟糕的是這個指令在不同的linux上名字也不同,事實上,就算是同一家公司的linux,因版本不同,這個指令也不同,麻煩!
在linux下用smbmount指令挂載
linux用戶端要連接配接samba/windows檔案伺服器時,需使用smbmount或mount指令:
smbmount //sambaserver/d /mnt/d -o username=aaa,password=bbb
smbmount //sambaserver/d /mnt/d -o username=aaa%bbb
mount -t smbfs -o username=aaa,password=bbb //sambaserver/d /mnt/d
mount -t smbfs -o username=aaa%bbb //sambaserver/d /mnt/d
smbclient //sambaserver/d -u username%password
如果出現errdos - errnosuchshare.....
請注意ip位址跟的檔案夾不是伺服器上的 而是網絡上看到的
比如伺服器上看到的是/home/abc
那麼指令應該是
mount -o username=aaa,password=bbb //xxx.xxx.xxx.xxx/abc /mnt
注意:
1. 指定uid或gid參數,也能指定使用者的身份(uid=後面可接uid号或使用者名),如:
smbmount //test/d /mnt/d -o uid=grind
2. smbmount也能寫作mount.smbfs,這是個符号連結;
3. smbmount的參數必須寫在最後,而mount的參數位置能變化;
4. 由于//sambaserver/d格式能表明是要mount上smbfs,是以mount的-t smbfs參數能省掉;
5. 如果指令行中不加入密碼,下一行中系統會提示你輸入;
6. smbclient成功後,會出現ftp類似的界面,請仿照ftp進行