與 Windows 共舞 - Samba
參考文件
所需套件
在 Windows 裡, 使用 "網路芳鄰" 來做 Windows 之間的分享; 在 Unix/Linux 裡, 使用 NFS 做資源分享, 使用 Samba, 就可以讓 Windows 和 Linux 使用 SMB 通訊協定來完成彼此之間的分享. 本篇文章, 大部份均使用 /etc/samba/smb.conf 這個檔案, 如有使用到別的檔案, 會另行說明. 讓 Linux 成為群組之一 要讓 Linux 成為 Windows 網路的群組之一, 就是要把自已加入群組, 設定的方法. 在 [global] 裡的 workgroup 要設定成 Windows 群組:
設定完之後, (重新) 啟動 smb service
接下來, 您就可以在 Windows 的網路芳鄰裡看到了。 這樣可以很清楚的看到, Nbcentos 是那台經由 samba 分享出來的電腦名稱, 而 註解欄位就等於是 server string 的設定. 建立一位使用者 能看到電腦了 ! 接下來一定會馬上想點兩下看看有分享些什麼 :) 但很不幸的居然需要帳號密碼 :-( 現在我們來建立一個用者密碼, 讓他能登入. 建立密碼的前提, 這個帳號必需為 "本機系統" 的實體帳號, 也就是說, 在設定密碼時, 前提是一定要有這位使用者才可以, 假設目前已經有了一位叫 steven 的 user, 現在要讓他能夠登入.
現在再輸入一次帳號密碼試看看! 看, 這樣就可以看到自己的家目錄了! 分享其它的目錄 現在系統除了使用者家目錄之外, 管理員也希望把一些文件也分享出來讓大家使用 (位置在 /documents) , 那麼我們就應該設立一個分享才行. 分享有一些條件, 就是只能讀取但無法寫入. 新增一個分享區塊
設定完之後, (重新) 啟動 smb service
再看一次有什麼變化 限定某些網段才可以使用本機分享 基於安全理由, 有些管理員可能希望這些分享只有在公司的網路才可以共享, 在其它的地方則不允許, 這時候我們可以使用 hosts allow 選項來讓我們達成這個目地.
一樣, 您必需要重新啟動 smb 服務才行. 如果您不是在允許的範圍之內, 那麼在連接時就會發生錯誤訊息: smb 系統已啟動, 其它電腦就是無法連線 samba 在執行時, 會使用 udp 137, udp 138, tcp 139, tcp 445 等 port, 如果一切就緒, 但還是無法連線, 那麼就有可能是您的防火牆沒有開放, 把他開啟就可以了, 如果您是使用 iptables 則可以考慮使用以下指令: 以下要開啟的 port 是和微風論壇的大哥實做之後得到的, 謝謝微風論壇的大哥 ^^
關於 udp 137, udp 138, tcp 139,tcp 445 的相關介紹, 請參考 Andrew 所提供的連結: 與事實相違? 已允許寫入確還是發生錯誤 當您在 smb.conf 設定了 user 可以在目錄寫入時, 確還是會出錯時, 這時您就要考慮要一點: 所有的 Service 允許的動作最後都要尊重 Filesystem 的權限. 上面意思是, 如果您允許 user 在 documents 放入自已的文件, 但是如果在主機 /documents 沒有給 user 寫入的權限, 那麼還是無法寫了的! 中文字發生錯誤? 相信大家在取檔名時,會發現一個很怪異的情況,就是中文檔名都變成亂碼了,就像下圖所示: 其實這是在 samba 中,字型編碼 code page 的問題,只要改成正確的 code page 就可以了,修改 /etc/samba/smb.conf。
修改完之後,重新啟動 samba 就可以了。
再來看一次,中文編碼應該沒問題了。 本例使用 samba 3.x,有關中文編碼的問題在 samba 2.x 並不適用。 Last modified: 02/28/2007 |
||||||||||