28.3. 設定 Samba 伺服器

SUSE Linux 中的 Samba 伺服器可用兩種不同方式進行設定:使用 YaST 或手動。手動設定組態可以提供較詳細的設定,但是缺乏 YaST GUI 提供的方便性。

28.3.1. 使用 YaST 設定 Samba 伺服器

若要設定 Samba 伺服器,請啟動 YaST 並選取 網路服務+Samba 伺服器。第一次啟動模組時,會啟動 Samba 伺服器安裝 對話方塊,提示您決定有關伺服器管理的一些基本設定,然後在組態設定結束時,會出現提示要您輸入 Samba root 的密碼。之後啟動時,會顯示 Samba 伺服器組態 對話方塊。

Samba 伺服器安裝 對話方塊由兩個步驟組成:

工作群組或領域名稱

工作群組或領域名稱 中選取現有的名稱,或輸入新的名稱,並按一下 下一步

Samba 伺服器類型

在下一個步驟中,指定您的伺服器是否應做為 PDC,並按一下 下一步

之後,您可以用 Samba 伺服器組態 對話方塊的 識別 索引標籤變更 Samba 伺服器安裝 中的所有設定。

第一次啟動 Samba 伺服器模組時,Samba 伺服器組態 對話方塊會緊跟在 Samba 伺服器安裝 對話方塊之後顯示。它包含三個索引標籤:

啟動

啟動 索引標籤中,您可以設定 Samba 伺服器的啟動。若每次系統開機時都要啟動服務,請選取 開機時。若要啟動手動啟動,請選擇 手動。如需有關啟動 Samba 伺服器的詳細資訊,請參閱 節 28.2, "啟動和停止 Samba"

在此標籤中,您也可以開啟您的防火牆中的連接埠。若要執行此動作,請選取 開啟防火牆中的連接埠。如果您有多個網路介面,請按一下 防火牆詳細資訊,選取介面,並按一下 確定 來選取 Samba 服務的網路介面。

共用

在此標籤中,決定要啟動的 Samba 共用。標籤中有一些預先定義的共同,如 home 和 printer。使用 切換狀態 以切換 作用中非作用中。按一下 新增 可新增新的共用,按一下 刪除 可刪除選取的共用。

識別

識別 中,您可以決定主機的關聯領域 (基礎設定),以及是否要在網路中使用替代的主機名稱 (NetBIOS 主機名稱)。若要查看進階全域設定,或設定使用者驗證,請按一下 進階設定

按一下 完成 以關閉組態。

28.3.2. 使用 SWAT 管理網頁

另一種管理 Samba 伺服器的工具是 SWAT (Samba Web Administration Tool,Samba 網頁管理工具)。它提供簡單的網頁介面,以用於設定 Samba 伺服器。若要使用 SWAT,請在網頁瀏覽器中開啟 http://localhost:901,並以 root 使用者的身份登入。如果您沒有特殊的 Samba root 帳戶,請使用系統的 root 帳戶。

[Note]啟動 SWAT

安裝 Samba 伺服器後,並不會啟動 SWAT。若要啟動 SWAT,請在 YaST 中開啟 網路服務+網路服務 (xinetd),啟用網路服務組態,選取表格中的 swat,並按一下 切換狀態 (開啟或關閉)

28.3.3. 手動設定伺服器

如果您想要使用 Samba 做為伺服器,請安裝 samba。Samba 的主要組態檔為 /etc/samba/smb.conf。這個檔案可以分成兩個邏輯部份。[global] 區段包含中央與全域設定值。[share] 區段包含個別檔案與印表機共用。利用此方法,就可以在 [global] 區段中以不同的方式或以全域方式設定關於共用的細節,它可以加強組態檔的結構透明化。

28.3.3.1. 全域區段

下列 [global] 區段的參數需要做一些調整,以符合網路設定的需求,讓其他機器可以透過 Windows 環境中的 SMB 存取 Samba 伺服器。

workgroup = TUX-NET

這一行是將 Samba 伺服器指定給工作群組。以網路環境中適當的工作群組取代 TUX-NET。除非您已將這個名稱指定給網路中的其他機器,否則 Samba 伺服器將會以其 DNS 名稱來顯示。如果沒有 DNS 名稱,請使用 netbiosname=MYNAME 設定伺服器名稱。如需關於此參數的詳細資訊,請參閱 mansmb.conf

os level = 2

此參數會觸發 Samba 伺服器是否嘗試變成其工作群組的 LMB (本地主要的瀏覽器)。請選擇一個非常低的值,以使現有的 Winodws 網路能避免設定不當的 Samba 伺服器所造成的任何問題。如需關於此重要主題的詳細資訊,請參閱套件文件中 textdocs 子目錄下的 BROWSING.txtBROWSING-Config.txt 檔案。

如果沒有其他的 SMB 伺服器在網路中 (例如,Windows NT 或 2000 伺服器),而且您想要 Samba 伺服器保留在本地環境中所存在的所有系統清單,請將 os level 設成更高的值 (例如,65)。接著就會將 Samba 伺服器選擇成本地網路的 LMB。

當變更此設定值時,請小心地考慮這個值將會如何影響現有的 Windows 網路環境。首先請在獨立的網路中或在一天中非重要的時間測試變更。

wins support 與 wins server

若要將 Samba 伺服器整合至含有主動 WINS 伺服器的現有 Windows 網路中,請啟用 wins server 選項,並將其值設為該 WINS 伺服器的 IP 位址。

如果您的 Windows 機器已連線至獨立的子網路中,而且應該要能夠看到彼此,則需要設定 WINS 伺服器。若要將 Samba 伺服器變成像這樣的 WINS 伺服器,請設定 wins support = Yes 選項。請確定網路中只有一個 Samba 伺服器啟用了這個設定值。wins serverwins support 選項絕不能在 smb.conf 檔案中同時啟用。

28.3.3.2. 共用

下列範例說明如何將 CD-ROM 光碟機與使用者目錄 (homes) 開放給 SMB 用戶端使用。

[cdrom]

若要避免不小心將 CD-ROM 光碟機開放成共用,請以備註符號停用這些行 (在此例中為分號)。請在第一個資料欄中移除分號,以便和 Samba 共用 CD-ROM 光碟機。

範例 28.1. CD-ROM 共用

;[cdrom]
;       comment = Linux CD-ROM
;       path = /media/cdrom
;       locking = No
[cdrom] and comment

[cdrom] 這個項目是在網路上所有的 SMB 用戶端都可以看到的共用名稱。可以另外再加入一個 comment,以進一步描述共用。

path = /media/cdrom

path 會輸出 /media/cdrom 目錄。

利用限制非常嚴格的預設組態,就可以將這種共用只開放給出現在此系統上的使用者共用。如果這個共用應該開放每個人使用,請將 guest ok = yes 加入組態。這個設定值可以將讀取權限開放給網路上的每個人使用。建議您處理此參數時必須極為小心。這將會在 [global] 區段中套用更多此參數的使用。

[homes]

[home] 共用在這裏特別重要。如果使用者擁有 Linux 檔案伺服器以及其自己主目錄的有效帳戶與密碼,就可以連線到主目錄。

範例 28.2. 主目錄共用

[homes]
	comment = Home Directories
	valid users = %S
	browseable = No
	read only = No
	create mask = 0640
	directory mask = 0750
[homes]

只要沒有其他的共用,使用共用的使用者名稱連線至 SMB 伺服器,就會使用 [homes] 共用指示來動態產生共用。共用的產生名稱是使用者名稱。

valid users = %S

只要成功地建立連線,就會以共用的具體名稱取代 %S[homes]共用,永遠為使用者名稱。因此,使用者共用的存取權限僅限於使用者。

browseable = No

這個設定值讓共用在網路環境變成無形的。

read only = No

根據預設,Samba 會利用 read only = Yes 參數,以禁止寫入任何輸出共用的權限。若要開放共用為可寫入的,請設定 read only = No 的值,這與 writable = Yes 同義。

create mask = 0640

以 MS Windows NT 為基礎的系統將無法理解 UNIX 權限的概念,因此在建立檔案時,它們將無法指定權限。create mask 參數可以定義指定給新建立檔案的存取權限。這只會套用至可寫入的共用。實際上,這個設定值表示擁有者具有讀取與寫入權限,而擁有者的主要群組成員則具有讀取權限。valid users = %S 可以在即使群組具有讀取權限時禁止讀取權限。若想要使群組具有讀取或寫入權限,請停用 valid users = %S 一行。

28.3.3.3. 安全性層級

為了提高安全性,每個共用存取權都以密碼保護。SMB 具有三個檢查權限的可能方法:

共用層級安全性 (安全性 = 共用)

每個共用都必須指定密碼。每個知道此密碼的人員都具有該共用的存取權。

使用者層級安全性 (安全性 = 使用者)

這個變化引用了使用者對 SMB 的概念。每個使用者都必須以自己的密碼註冊伺服器。在註冊後,伺服器可以視使用者名稱將存取權授與個別輸出的共用。

伺服器層級安全性 (安全性 = 伺服器):

對其用戶端而言,Samba 會模擬在使用者層級模式中工作。不過,它會將所有的密碼查詢傳遞給另一個將會處理驗證的使用者層級模式伺服器。這個設定值將需要另一個參數 (password server)。

共用、使用者或伺服器層級安全性的選擇會套用至整部伺服器。因為無法針對伺服器組態的個別共用提供共用層級的安全性,並針對其他的共用提供使用者層級的安全性。然而,您可以針對系統上每個設定的 IP 位址執行個別的 Samba 伺服器。

在「Samba HOWTO 文件集」中可以找到關於此主題的詳細資訊。至於在一個系統上的多個伺服器,請注意 interfacesbind interfaces only 選項。