摘要
使用 Samba 可以將 Unix 機器設定為 Mac OS X、Windows 以及 OS/2 機器的檔案與列印伺服器。Samba 已經是一個開發至完全成熟且相當複雜的產品。使用 YaST、SWAT (一種 Web 介面),或透過手動編輯組態檔的方式設定 Samba。
下列為 Samba 文件和 YaST 模組中常用的詞彙。
Samba 使用基於 NetBIOS 服務的 SMB (伺服器訊息區塊) 通訊協定。由於 Microsoft 發行了此通訊協定,因此其他的軟體製造商可以建立連接至 Microsoft 網域網路的連線。使用 Samba,SMB 通訊協定就可以在 TCP/IP 通訊協定上運作,因此 TCP/IP 通訊協定必須安裝在所有的用戶端上。
CIFS (一般網際網路檔案系統) 通訊協定是 Samba 所支援的另一種通訊協定。CIFS 定義用於網路上的標準遠端檔案系統存取通訊協定,讓使用者群組可以透過網路分工合作和共享文件。
NetBIOS 是用來在提供名稱服務的機器之間進行通訊的軟體介面 (API)。它允許連接至網路的機器保留自己的名稱。在保留後,就可以使用名稱來定址這些機器。在此沒有檢查名稱的中央程序。在網路上的任何機器都可以保留它所需的任何數量名稱,只要這些名稱尚未使用。可以針對不同的網路結構實作 NetBIOS 介面。有一個與網路硬體一起緊密運作的執行程序,稱為 NetBEUI,不過這通常稱為 NetBIOS。與 NetBIOS 一起執行的網路通訊協定是 Novell 的 IPX (經由 TCP/IP 的 NetBIOS) 與 TCP/IP。
經由 TCP/IP 所傳送的 NetBIOS 名稱,與 /etc/hosts 中所使用的名稱,或由 DNS 所定義的名稱完全不相同。NetBIOS 使用自己完全獨立的命名慣例。不過,一般建議使用與 DNS 主機名稱相對應的名稱,如此可使管理較為輕鬆,或者可本地使用 DNS。Samba 預設是使用此對應名稱。
Samba 伺服器可為用戶端提供 SMB/CIFS 服務和 NetBIOS over IP 命名服務。對於 Linux 系統,Samba 伺服器有三種精靈可用:smbd (用於 SMB/CIFS 服務)、nmbd (用於命名服務) 及 winbind (用於驗証)。
Samba 用戶端是透過 SMB 通訊協定,使用 Samba 伺服器所提供之 Samba 服務的系統。所有一般的作業系統 (例如 Mac OS X、Windows 以及 OS/2) 都支援 SMB 通訊協定。TCP/IP 通訊協定必須安裝在所有的電腦上。Samba 提供適用於不同 UNIX 類別的用戶端。就 Linux 而言,有一個 SMB 的核心模組,允許在 Linux 系統層級上整合 SMB 資源。您不必為 Samba 用戶端執行任何精靈。
SMB 伺服器透過共享方式向用戶端提供資源。共享是指印表機和位在伺服器上的目錄及其子目錄。它是利用名稱來輸出,並且可藉由其名稱來存取。共享名稱可以設成任何名稱—它並不需要是輸出目錄的名稱。也會指定一個名稱給印表機。用戶端可以透過其名稱存取印表機。
用戶端只能透過 TCP/IP 存取 Samba 伺服器。NetBEUI 與透過 IPX 的 NetBIOS 無法與 Samba 一起使用。
設定 Samba 用戶端以存取 Samba 或 Windows 伺服器上的資源 (檔案或印表機)。在+對話方塊中輸入 NT 或 Active Directory 網域或工作群組。如果您啟用了,則使用者驗證將會在 Samba、NT 或 Kerberos 伺服器上執行。
按一下可以指定進階組態選項。例如,使用表格可設定在驗證時自動掛接伺服器主目錄。這樣,當使用者的主目錄在 CIFS 上託管時,他們便可以存取這些目錄。如需詳細資料,請參閱 pam_mount man 頁面。
完成所有設定之後,在對話方塊中進行確認以完成組態設定。
在以 Windows 用戶端為主的網路中,通常會建議使用者只註冊一個有效的帳戶與密碼。在以 Windows 為基礎的網路中,這個任務是由主要網域控制器 (PDC) 來處理。您可以使用已設定為 PDC 的 Windows NT 伺服器,但也可借助 Samba 伺服器完成此任務。在 smb.conf 的 [global] 區段中必須編輯的項目如 範例 24.1 「在 smb.conf 中的全域區段」 所示。
如果使用加密密碼進行驗證,則 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 章。
可在數位文件中取得更多有關 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》。