1 / 83

第 24 章

第 24 章. Samba 伺服器. 前言. 微軟 Windows 作業系統提供的 『 網路芳鄰 』 服務 , 讓人們發現在區域網路中 , 互相分享檔案與印表機等資源是這麼一件簡單容易的事:只要輕鬆地按幾下 , 就可以使用他人分享出來的檔案與印表機。這麼好用的功能 , 難道 Linux 社群的人就只能乾瞪眼嗎?當然不是 , 透過本章介紹的 Samba 伺服器 , 您的 Linux 也可以跟 Windows 用網路芳鄰共享資源 ,『 一家烤肉萬家香 』 了。. 本章提要. 24-1 Samba 簡介

Download Presentation

第 24 章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 24 章 Samba 伺服器

  2. 前言 • 微軟 Windows 作業系統提供的『網路芳鄰』 服務, 讓人們發現在區域網路中, 互相分享檔案與印表機等資源是這麼一件簡單容易的事:只要輕鬆地按幾下, 就可以使用他人分享出來的檔案與印表機。這麼好用的功能, 難道 Linux 社群的人就只能乾瞪眼嗎?當然不是, 透過本章介紹的 Samba 伺服器, 您的 Linux也可以跟 Windows 用網路芳鄰共享資源,『一家烤肉萬家香』了。

  3. 本章提要 • 24-1 Samba 簡介 • 24-2 安裝與啟動 Samba 伺服器 • 24-3 認識 Samba 的安全等級 • 24-4 設定特定的使用者才能登入 Samba 伺服器 • 24-5 分享只能唯讀的目錄

  4. 本章提要 • 24-6 分享可讀寫的目錄 • 24-7 分享只允許特定使用者存取的目錄 • 24-8 分享印表機 • 24-9 在 Windows 使用分享的目錄及印表機 • 24-10 SWAT - Samba 的 Web 介面設定軟體

  5. 24-1 Samba 簡介 • 這些年來, Windows 與 Linux 作業系統各自擁有其支持者及市場。因而在一般公司行號或學校裡, 可能同時有 Windows 及 Linux 作業系統的主機。Windows主機間可以藉由網路芳鄰共享資源, Linux 和 Linux 主機可以透過 NFS 共享目錄, 而 Samba 伺服器則可以讓 Windows 與 Linux 達成資源共享。

  6. Samba 簡介 • 為了使 Windows 主機間的資源能夠共享, IBM 於 1980 年代發展出了 SMB(Server Message Block) 通訊協定。微軟則藉著 SMB 通訊協定, 使得網路芳鄰主機間的檔案、印表機能夠彼此分享。目前類似此種資源分享的通訊協定還有NFS、Appletalk ...等。 • 如果您對 SMB 通訊協定有興趣, 可參考 http://www.samba.org/cifs/docs/what-is-smb.html 的 "Just what is SMB?" 文章的說明。

  7. Samba 簡介 • 微軟網路芳鄰的功能一推出後, 便廣受使用者的好評, 大家突然發現原來要在網路上共享資源是那麼簡單的事! • 有鑑於此, 熱心人士們開始在 Linux 主機上實現 SMB 通訊協定, 而後來實作出來的軟體即稱為 Samba。

  8. Samba 簡介 • 由於 SMB 通訊協定是採用 client/server 架構的通訊協定, 所以 Samba 軟體也分為用戶端及伺服端 2 個部分。藉由執行 Samba 用戶端程式, Linux 主機便可以透過網路芳鄰使用 Windows 主機所分享的資源;而在 Linux 主機安裝Samba 伺服器, 則讓 Linux 主機可以透過網路芳鄰的方式將資源分享出去, 與Windows 主機共享。也就是說, Samba 將 Windows 和 Linux 給拉在一起了!

  9. 24-2 安裝與啟動 Samba 伺服器 • 目前 Samba 軟體主要是由一個 20 人左右的 Samba 團隊負責維護及開發,大多數 Linux 發行版都已內附 Samba 程式套件, 透過 http://www.samba.org/ 網頁可以獲得有關 Samba 的詳細資訊, 也可以取得 Samba 的最新版本。

  10. 安裝與啟動 Samba 伺服器 • 安裝 Samba • Fedora Core 2 內附 Samba 版本的問題 • 設定並啟動 Samba 伺服器 • 修改 smb.conf 設定檔 • 檢查 smb.conf 設定檔的正確性 • testparm 的檢查結果有誤 • 啟動 Samba 伺服器 • 使用分享的目錄

  11. 安裝 Samba • Samba 伺服器總共有 4 個相關套件, 您可執行以下指令確認是否已安裝:

  12. 安裝 Samba • 若發覺尚未安裝 samba, 則請在安裝光碟中找到 samba 套件, 掛載並切換到檔案所在的目錄後執行下列指令安裝:

  13. Fedora Core 2 內附 Samba 版本的問題 • 若您是使用 Fedora Core 2 發行版, 要請您特別注意:由於此 Linux 發行版所附的 Samba3.0.3 版有些許問題, 會造成已安裝微軟 Hotfix-K828741 安全性更新程式的 Windows NT/2000/XP/2003 系統無法與 Samba 伺服器連線。

  14. Fedora Core 2 內附 Samba 版本的問題 • 不過新版本的 Samba (筆者撰文時最新版本為 3.0.7) 已修正此一問題, 因此無論您是否已安裝上述套件, 都請至 http://us3.samba.org/samba/ftp/Binary_Packages/ Fedora/RPMS/i386/core/2/ 下載新版的 samba、samba-common、samba-client 及 samba-swat 套件,並如下安裝:

  15. 設定並啟動 Samba 伺服器 • 安裝好後, 馬上就可以啟動 Samba 伺服器了。但是 Samba 伺服器預設使用的設定值無法讓所有使用者登入, 因此我們在啟動之前, 必須先修改 Samba伺服器的設定檔。 • Samba 伺服器的設定檔為 /etc/samba/smb.conf, 主要分為兩大部分:一是Samba 伺服器的整體環境設定, 這裡所做的設定會套用於每個分享資源;另一則是各個分享資源的個別設定項目, 該處所做的設定只對某一特定的分享資源有效。其結構為:

  16. 設定並啟動 Samba 伺服器

  17. 設定並啟動 Samba 伺服器 • 以下我們先以一個最簡單的例子:分享 /tmp 目錄 (讓所有使用者都可以存取該目錄), 來介紹如何設定並啟動 Samba 伺服器。

  18. 修改 smb.conf 設定檔 • 請先開啟 /etc/samba/smb.conf 設定檔, 並如下修改:

  19. 修改 smb.conf 設定檔

  20. 修改 smb.conf 設定檔

  21. 修改 smb.conf 設定檔 • 若 Samba 伺服器及用以連線進入 Samba 伺服器的 Windows 電腦主機名稱為中文, 則可能會出現無法進入工作群組的錯誤情況。此時, 必須在瀏覽器的網址列輸入 "\\Samba 伺服器的 IP 位址\" 才能順利連線。因此建議您, 主機的名稱最好不要使用中文。

  22. 檢查 smb.conf 設定檔的正確性 • 修改完設定檔後, 可以用 testparm指令檢查 smb.conf 的正確性, 並列出可能錯誤的地方:

  23. 檢查 smb.conf 設定檔的正確性

  24. 檢查 smb.conf 設定檔的正確性 • 執行 testparm指令列出 smb.conf 設定檔內容時, 您可能會發現列出的設定值較實際在設定檔中見到的多了許多。這是因為 Samba 伺服器的 smb.conf 有許多預設值, 而 testparm指令會把這些預設值統統列出來!

  25. testparm 的檢查結果有誤 • 執行 testparm指令會列出 smb.conf 檔中可能的錯誤之處, 例如以下錯誤訊息說明"workgroup" 設定項目被誤植為 "gworkgroup"。我們可依照所得到的檢查結果, 來修正 smb.conf 檔:

  26. 啟動 Samba 伺服器 • 修改好設定檔之後, 請執行以下指令, 啟動 Samba 伺服器: • 執行 /etc/rc.d/init.d/smb指令時, 除了可用 start 參數啟動之外, 還可以使用 stop、restart、status 等參數。 • 若希望開機時能自動啟動 samba, 可執行 chkconfig smb on 指令設定。

  27. 使用分享的目錄 • 成功啟動 Samba 伺服器之後, 在 Windows 的網路芳鄰就可以看到我們剛剛所分享出來的目錄了 (若您設定 Samba 時, 在 workgroup 項目指定了一個新的工作群組, 則可能需要稍等幾分鐘, 才可以看到並進入該群組):

  28. 使用分享的目錄

  29. 使用分享的目錄

  30. 使用分享的目錄

  31. 使用分享的目錄 • 接下來即可在此分享的 /tmp 目錄, 存取所需的檔案了。

  32. 24-3 認識 Samba 的安全等級 • 在上一節中, 我們介紹了一個最簡單的 smb.conf 範例, 該例子中將"security =" 設成 "share", 表示此 Samba 伺服器使用 share 安全等級, 可讓所有使用者不需帳號及密碼即可登入。 • 其實 Samba 伺服器共有 4 種安全等級, 安全性由低至高分別為:share (共用級別)、 user (使用者級別)、server (密碼伺服器) 及 domain (網域)。

  33. 認識 Samba 的安全等級 • 其中除了 share 等級外, 其他 3 種等級, 使用者均必須輸入正確的帳號及密碼, 才能登入並使用 Samba 伺服器所分享的資源。以下是此 4 種安全等級的簡要說明: • share:若採用此安全等級, 則 Windows 或其他主機上的使用者都不需輸入帳號及密碼, 即可登入 Samba 伺服器。

  34. 認識 Samba 的安全等級 • user:這是 Samba 伺服器預設使用的安全等級。使用者在存取 Samba 伺服器分享的資源前, 必須先輸入帳號及密碼, 經提供服務的 Samba 伺服器驗證通過後, 才可使用分享的資源。 • server:若設定為此安全等級, 使用者在存取 Samba 伺服器分享的資源前,也必須先輸入帳號及密碼, 經驗證通過後, 才可使用分享的資源。不過, 此驗證工作會由另一台指定的 Samba 伺服器或 Windows NT/2000/2003 執行。

  35. 認識 Samba 的安全等級 • domain:若 Samba 伺服器要加入的網路環境為網域而非工作群組, 則可使用此等級, 利用網域中的 Windows 伺服器進行使用者身份密碼的驗證工作。 • 由於 server 等級需要額外的電腦進行認證;而 domain 等級也必須在 Windows 網域中執行, 所以實際運用上, 以 share 及 user 等級較為常用, 設定也較方便。因此, 接下來的設定, 我們將以此 2 個等級為例作說明。

  36. 24-4認識 Samba 的安全等級 • 若您不希望讓所有使用者都能任意登入 Samba 伺服器, 存取資源, 則可以將安全等級設定為 user, 透過設定 Samba 伺服器的帳號及密碼, 限制使用者登入。 • 請開啟 /etc/samba/smb.conf 檔:

  37. 認識 Samba 的安全等級

  38. 認識 Samba 的安全等級 • 設定好後, 請接著執行以下指令產生 "smb passwd file =" 項目指定的 /etc/samba/smbpasswd 密碼檔:

  39. 認識 Samba 的安全等級 • 然後利用 smbpasswd指令, 一一設定 /etc/samba/smbpasswd 檔中每個帳號所要使用的密碼 (密碼檔中的帳號為系統中已存在的帳號, 以下以 tony 使用者為例):

  40. 認識 Samba 的安全等級 • 完成上述設定後, 請執行下列指令重新啟動 Samba 伺服器, 讓設定值生效: • 如次一來, 當使用者欲進入 Samba 伺服器時, 就會出現下列的交談窗詢問 Samba 伺服器上的帳號及密碼:

  41. 認識 Samba 的安全等級

  42. 24-5 分享只能唯讀的目錄 • 前面有關安全等級的設定屬於 Samba 伺服器的整體境設定, 完成前面設定後, 使用者已經可以順利登入 Samba 伺服器。接下來的章節, 我們將說明如何分享資源。 • 首先分享的是只開放讀取的目錄, 請開啟 /etc/samba/smb.conf 設定檔, 在設定檔的最末端加入下列內容:

  43. 分享只能唯讀的目錄 • 如果要讓所有人都可以登入伺服器, 記得要把 "security=" 的值設成 "share"。

  44. 分享只能唯讀的目錄 • 重新啟動 Samba 伺服器之後, 即可看到所分享的唯讀目錄:

  45. 24-6 分享可讀寫的目錄 • 上一節設定的目錄僅提供唯讀的權限, 若要分享可讀寫的目錄, 請於 /etc/samba/smb.conf 設定檔最末端加入下列設定:

  46. 分享可讀寫的目錄 • 設定好後, 執行下列指令建立分享目錄, 並設定存取權限, 再重新啟動 Samba伺服器: • 如此您就可以在該目錄中新增、刪除及修改檔案了。

  47. 24-7 分享只允許特定 使用者存取的目錄 • 前面 2 節所建立的分享目錄, 只要使用者能登入 Samba 伺服器, 都可以依照開放的權限, 瀏覽或修改其中的資料。但通常公司、學校或個人使用的資料,並不適合讓所有的使用者都可以瀏覽及修改。此時, 就必須限制分享目錄的權限,僅讓某些使用者可以進入並使用其中的檔案資料。

  48. 分享只允許特定 使用者存取的目錄 • 24-7-1 限制使用者的 IP 位址 • 24-7-2 限制使用者的帳號

  49. 24-7-1 限制使用者的 IP 位址 • 要限制使用者存取分享目錄, 最簡單的方式就是限制使用者的 IP 位址, 僅允許來自特定 IP 位址的使用者瀏覽分享目錄。請編輯 /etc/samba/smb.conf, 在整體環境設定或欲限制的目錄設定項目中加入下列設定(設定好後請記得重新啟動伺服器):

  50. 限制使用者的 IP 位址 • 或是您也可以指定不允許存取的 IP 位址: • 例如筆者在整體環境設定區塊設定 "hosts deny = 192.168.0.35", 則由此IP 位址的主機存取 Samba 伺服器時, 就會被拒絕:

More Related