章 27. Samba

目錄

27.1. 術語
27.2. 設定 Samba 伺服器
27.3. 設定用戶端
27.4. 做為登入伺服器的 Samba
27.5. 更多資訊

摘要

使用 Samba 可以將 Unix 機器設定為 Mac OS X、Windows 以及 OS/2 機器的檔案與列印伺服器。Samba 已經是一個開發至完全成熟且相當複雜的產品。使用 YaST、SWAT (一種 Web 介面) 設定 Samba,或透過手動編輯組態檔的方式設定。

27.1. 術語

下列為 Samba 文件和 YaST 模組中常用的詞彙。

SMB 通訊協定

Samba 使用基於 NetBIOS 服務的 SMB (伺服器訊息區塊) 通訊協定。由於 Microsoft 發行了此通訊協定,因此其他的軟體製造商可以建立連接至 Microsoft 網域網路的連接。使用 Samba,SMB 通訊協定就可以在 TCP/IP 通訊協定上運作,因此 TCP/IP 通訊協定必須安裝在所有的用戶端上。

CIFS 通訊協定

CIFS (一般網際網路檔案系統) 通訊協定是 Samba 所支援的另一種通訊協定。CIFS 定義用於網路上的標準遠端檔案系統存取通訊協定,讓使用者群組可以透過網路分工合作和共享文件。

NetBIOS

NetBIOS 是用來在提供名稱服務的機器之間進行通訊的軟體介面 (API)。它允許連接至網路的機器保留自己的名稱。在保留後,就可以使用名稱來定址這些機器。在此沒有檢查名稱的中央程序。在網路上的任何機器都可以保留它所需的任何數量名稱,只要這些名稱尚未使用。可以針對不同的網路結構實作 NetBIOS 介面。有一個與網路硬體一起緊密運作的執行程序,稱為 NetBEUI,不過這通常稱為 NetBIOS。與 NetBIOS 一起執行的網路通訊協定是 Novell 的 IPX (經由 TCP/IP 的 NetBIOS) 與 TCP/IP。

經由 TCP/IP 所傳送的 NetBIOS 名稱,與 /etc/hosts 中所使用的名稱,或由 DNS 所定義的名稱完全不相同。NetBIOS 使用自己完全獨立的命名慣例。不過,一般建議使用與 DNS 主機名稱相對應的名稱,如此可使管理較為輕鬆,或者可本地使用 DNS。Samba 預設是使用此對應名稱。

Samba 伺服器

Samba 伺服器可為用戶端提供 SMB/CIFS 服務和 NetBIOS over IP 命名服務。對於 Linux 系統,Samba 伺服器有三種精靈可用:smbd (用於 SMB/CIFS 服務)、nmbd (用於命名服務) 及 winbind (用於驗証)。

Samba 用戶端

Samba 用戶端是透過 SMB 通訊協定,使用 Samba 伺服器所提供之 Samba 服務的系統。所有一般的作業系統 (例如 Mac OS X、Windows 以及 OS/2) 都支援 SMB 通訊協定。TCP/IP 通訊協定必須安裝在所有的電腦上。Samba 提供適用於不同 UNIX 類別的用戶端。就 Linux 而言,有一個 SMB 的核心模組,允許在 Linux 系統層級上整合 SMB 資源。您不必為 Samba 用戶端執行任何精靈。

共享

SMB 伺服器透過共享方式向用戶端提供資源。共享是指印表機和位在伺服器上的目錄及其子目錄。它是利用名稱來輸出,並且可藉由其名稱來存取。共用名稱可以設成任何名稱 它並不需要是輸出目錄的名稱。也會指定一個名稱給印表機。用戶端可以透過其名稱存取印表機。

DC

領域控制器 (DC) 是處理網域中帳戶的伺服器。進行資料複製時,可在一個網域中使用其他領域控制器。

27.2. 設定 Samba 伺服器

若要設定 Samba 伺服器,請參閱相應的 SUSE Linux Enterprise Server 文件。

27.3. 設定用戶端

用戶端只能透過 TCP/IP 存取 Samba 伺服器。NetBEUI 與透過 IPX 的 NetBIOS 無法與 Samba 一起使用。

27.3.1. 使用 YaST 設定 Samba 用戶端

設定 Samba 用戶端以存取 Samba 或 Windows 伺服器上的資源 (檔案或印表機)。在網路服務+Windows 網域成員對話方塊中輸入 NT 或 Active Directory 網域或工作群組。如果您啟用了Linux 驗證也使用 SMB 資訊,則使用者驗證將會在 Samba、NT 或 Kerberos 伺服器上執行。

按一下進階設定可以指定進階組態選項。例如,使用安裝伺服器目錄表格可設定在驗證時自動掛接伺服器主目錄。這樣,當使用者的主目錄在 CIFS 上託管時,他們便可以存取這些目錄。如需詳細資料,請參閱 pam_mount man 頁面。

完成所有設定之後,在對話方塊中進行確認以完成組態設定。

27.4. 做為登入伺服器的 Samba

在以 Windows 用戶端為主的網路中,通常會建議使用者只註冊一個有效的帳戶與密碼。在以 Windows 為基礎的網路中,這個任務是由主要網域控制器 (PDC) 來處理。您可以使用已設定為 PDC 的 Windows NT 伺服器,但也可借助 Samba 伺服器完成此任務。在 smb.conf[global] 區段中必須編輯的項目如 範例 27.1 「在 smb.conf 中的全域區段」 所示。

範例 27.1. 在 smb.conf 中的全域區段

[global]
    workgroup = TUX-NET
    domain logons = Yes
    domain master = Yes

如果使用加密密碼進行驗證,則 Samba 伺服器必須能夠處理這些密碼。在 [global] 區段中的 encrypt passwords = yes 項目可以啟用此功能 (加上 Samba 版本 3,現在這個是預設值)。除此之外,必須準備符合 Winodws 加密格式的使用者帳戶與密碼。此操作可使用指令 smbpasswd -a name 來完成。使用下列指令為電腦建立網域帳戶 (Windows 網域概念所需):

useradd hostname\$
smbpasswd -a -m hostname

使用 useradd 指令,就會加上貨幣符號。當使用 -m 參數時,smbpasswd 指令就會自動插入這個符號。加備註的組態範例 (/usr/share/doc/packages/Samba/examples/smb.conf.SuSE) 包含一些設定,可讓此任務自動執行。

add machine script = /usr/sbin/useradd -g nogroup -c "NT Machine Account" \
-s /bin/false %m\$
     

為確保 Samba 可正確執行此程序檔,請選擇擁有所需之管理員權限的 Samba 使用者,並將其新增至 ntadmin 群組。這樣就可以透過下列指令將 Domain Admin 狀態指定給此 Linux 群組內的所有使用者:

net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin

如需有關此主題的詳細資訊,請參閱《Samba 3 HOWTO》(/usr/share/doc/packages/samba/Samba3-HOWTO.pdf) 的第 12 章。

27.5. 更多資訊

可在數位文件中取得更多有關 Samba 的資訊。如果已安裝 Samba 文件,若要取得更多的線上文件與範例,請在指令行輸入 apropossamba 以顯示一些手冊頁或直接瀏覽 /usr/share/doc/packages/samba 目錄。在 examples 子目錄中尋找加有備註的範例組態 (smb.conf.SuSE)。

《Samba 3 HOWTO》由 Samba 團隊提供,包含疑難排解一節。除此之外,文件的第五部份提供檢查組態的逐步指南。安裝 samba-doc 套件後,可以在 /usr/share/doc/packages/samba/Samba3-HOWTO.pdf 中找到《Samba 3 HOWTO》。


SUSE Linux Enterprise Desktop 管理指南 11 SP4