17.2. 設定一部 Samba 伺服器

預設的設定檔案(/etc/samba/smb.conf) 使得使用者可以以一個 Samba 共享資源的方式檢視他們的 Red Hat Linux 家目錄,也分享在 Red Hat Linux 系統上設定好的任何印表機為 Samba 共享印表機。 也就是說,您可以連接一部印表機到您的 Red Hat Linux 系統,然後從網路上的 Windows 機器進行列印。

17.2.1. 圖形化的設定

如要使用一個圖形介面來設定 Samba,請您使用 Samba 伺服器設定工具。 至於命令列的設定方式,請翻閱至 菴 17.2.2 節

Samba 伺服器設定工具 是用來管理 Samba 共享資源、使用者與基本伺服器設定的一個圖形化介面。 它將同時修改位於 /etc/samba/ 目錄中的設定檔案,而且將會保留任何非使用這個應用程式所做的變更。

如要使用這個應用程式,您必須執行 X 視窗系統,並擁有 root 權限,而且已經安裝了 redhat-config-samba RPM 套件。 如要從桌面啟動 Samba 伺服器設定工具,請選擇面板上的 『主選單按鈕』 => 『系統設定』 => 『伺服器設定』 => 『Samba 伺服器』,或在 shell 提示符號(如 XTerm 或 GNOME 終端機)下輸入 redhat-config-samba 指令。

圖形 17-1. Samba 伺服器設定工具

注請注意
 

Samba 伺服器設定工具 並不顯示共享的印表機,以及允許使用者檢視 Samba 伺服器上的使用者家目錄的預設設定。

17.2.1.1. 配置伺服器設定

設定 Samba 伺服器的第一步是為伺服器配置基本的設定以及一些安全性的選項。 在啟動這個應用程式後,請從程式選單選擇 『偏好設定』 => 『伺服器設定』,將會顯示如 圖形 17-2 所示的 『基本設定』 標簽頁。

圖形 17-2. 配置基本的伺服器設定

在『基本設定』 的標簽頁中,請指定這個電腦所屬的工作群組,以及關於這部電腦的一個簡短的描述。 這兩個欄位等同於 smb.conf 設定檔中的 workgroupserver string 選項。

圖形 17-3. 配置伺服器的安全性設定

安全性設定』 標簽頁含有下列的選項:

  • 認證模式 — 等同於 security 選項,請選取下列認證模式的其中之一。

    • 網域 — Samba 伺服器將倚賴一部 Windows NT 的網域主控制站或網域備份控制站來驗證使用者。 伺服器傳送使用者名稱與密碼到控制站,然後等候回應。 請在 『認證伺服器』 的欄位指定網域主控制站或網域備份控制站的 NetBIOS 名稱。

      假如有選擇這個選項的話,必須設定 『密碼加密』 的選項為 『』。

    • 伺服器 — Samba 伺服器藉由傳送使用者名稱與密碼的結合到另一部 Samba 伺服器以試著來驗證它們。 假如不可行的話,伺服器將會使用使用者認證模式來做驗證。 請在 『認證伺服器』 的欄位指定另一部 Samba 伺服器的 NetBIOS 名稱。

    • 共享 — 對每一部 Samba 伺服器,Samba 使用者並不需要輸入使用者名稱與密碼的組合。 除了他們試著要連線到一個特定的共享目錄,他們將不會被提示要求輸入使用者名稱與密碼。

    • 使用者 — (預設值)對每一部 Samba 伺服器,Samba 使用者必須提供一組有效的使用者名稱與密碼。 假如您想要使用 『Windows 使用者名稱』 的選項,請選取這個選項,請參考 菴 17.2.1.2 節 以取得更詳細資訊。

  • 密碼加密 — (預設值為 『』) 假如用戶端從一部 Windows 98, Windows NT 4.0(Service Pack 3) 或其他更新版本的 Microsoft Windows 進行連線的話,必須啟用這個選項。 在伺服器與用戶端間是以加密格式來傳輸密碼,而不是以可被他人截取的純文字字元。 這個選項等同於 encrypted passwords 選項。 請參考 菴 17.2.3 節 以取得關於加密 Samba 密碼的更多資訊。

  • Guest 帳號 — 當使用者或 guest 使用者登入到一部 Samba 伺服器,必須對應他們到伺服器上一個有效的使用者。 請選取系統上一個既有的使用者名稱來當作 guest Samba 帳號。 當 guest 登入到 Samba 伺服器時,他將與該使用者擁有相同的權限。 這個設定等同於 guest account 選項。

在點選 確定 後,所做的變更將寫入到設定檔案,而且也將會重新啟動系統程式,因此變更將立即生效。

17.2.1.2. 管理 Samba 使用者

在新增一個 Samba 使用者之前,Samba 伺服器設定工具 需要作為 Samba 伺服器的 Red Hat Linux 系統上有一個可使用的既有使用者帳號。 Samba 使用者與既有的 Red Hat Linux 使用者帳號是相關聯的。

圖形 17-4. 管理 Samba 使用者

如要新增一個 Samba 使用者,請從程式選單選擇 『偏好設定』 => 『Samba 使用者』,再點選 新增使用者 的按鈕。 在 『建立新的 Samba 使用者』 視窗中,從本機系統上既有的使用者清單選取一個 『Unix 使用者名稱』。

假如該使用者在 Windows 機器上擁有另一個不同的使用者名稱,而且該使用者將 Windows 機器登入到 Samba 伺服器,請在 『Windows 使用者名稱』 的欄位指定一個 Windows 使用者名稱。 在 『伺服器設定』 選項中的 『安全性設定』 標簽頁裡的 『認證模式』 必須設定為 『使用者』 才能使這個選項發生作用。

還要為 Samba 使用者設定一個 『Samba 密碼』,並且再輸入一次以做確認。 即使您選擇為 Samba 使用加密的密碼,還是建議您讓所有使用者的 Samba 密碼與他們的 Red Hat Linux 系統之密碼不相同。

如要編輯一個既有的使用者,請從清單中選取該使用者,再點選 編輯使用者 的按鈕。 如要刪除一個既有的使用者,請選取該使用者,再點選 刪除使用者 的按鈕。 刪除一個 Samba 使用者並不會刪除相關的 Red Hat Linux 使用者帳號。

再點選 確定 按鈕後,將立即修改使用者的資訊。

17.2.1.3. 新增共享

圖形 17-5. 新增共享

如要新增一個共享,請點選 新增 的按鈕,在 『基本設定』 的標簽頁中可以設定下列選項:

  • 目錄 — 透過 Samba 共享的目錄,該目錄必須存在。

  • 描述 — 關於共享資源的簡單描述。

  • 基本權限設定 — 設定使用者對共享目錄的存取權限,包括『只能讀取』與『讀取/寫入』。

在 『存取控制』 的標簽頁中,請選擇是否要允許指定的使用者或所有的 Samba 使用者存取共享資源。 假如您選擇要允許指定的使用者存取,請從 Samba 使用者的清單中選擇使用者。

在點選 確定 按鈕後,將立即新增該共享資源。

17.2.2. 命令列設定方式

Samba 使用 /etc/samba/smb.conf 當作它的設定檔案,假如您對這個檔案做任何的變更,在您使用 service smb restart 指令重新啟動 Samba 系統程式前,變更將不會生效。

如要指定 Windows 的工作群組以及關於該 Samba 伺服器的簡短描述,請編輯在 smb.conf 檔案中的下列幾行:

workgroup = WORKGROUPNAME
server string = BRIEF COMMENT ABOUT SERVER

請以這部機器所屬的 Windows 工作群組名稱取代 WORKGROUPNAMEBRIEF COMMENT ABOUT SERVER 是可不輸入的,是使用來當作 Windows 中關於 Samba 系統的註解。

如要在您的 Linux 系統中建立一個 Samba 的共享資源,請將下列的部份加入到您的 smb.conf 檔案中(請依照您的需求與系統狀況來修改):

[sharename]
comment = Insert a comment here
path = /home/share/
valid users = tfox carole
public = no
writable = yes
printable = no
create mask = 0765

以上的例子會允許使用者 tfox 與 carole 從一部 Samba 用戶端進行讀取與寫入 Samba 伺服器上的 /home/share 目錄。

17.2.3. 密碼加密

在 Red Hat Linux 9 中,對密碼進行加密是預設啟用的,因為這樣較安全。 假如沒有使用加密的密碼,則會使用純文字的密碼,這樣將會有被他人使用網路封包探測器截取的危險。 因此建議您使用加密的密碼。

Microsoft SMB 通訊協定原本是使用純文字的密碼,然而 Windows NT 4.0 (含有 Service Pack 3 以上), Windows 98, Windows 2000, Windows ME 以及 Windows XP 則需要加密的 Samba 密碼。 如要在一部 Red Hat Linux 系統與一部執行其中一種 Windows 作業系統的系統間使用 Samba,您可以編輯 Windows 的系統登錄來使用純文字密碼或是設定 Linux 系統上的 Samba 來使用加密的密碼。 假如您選擇要修改您的系統登錄,您必須在所有的 Windows 機器上進行修改 — 這是很危險的,並且也許會導致更多的系統衝突狀況。 建議您使用加密的密碼以提供較佳的安全性。

如要在您的 Red Hat Linux 系統上設定 Samba 使用加密的密碼,請遵照這些步驟:

  1. 為 Samba 建立另一個密碼檔案,如要以現有的 /etc/passwd 檔案為基礎來建立,請在 shell 提示符號下輸入以下指令:

    cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

    假如系統使用 NIS,請輸入下列指令:

    ypcat passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

    mksmbpasswd.sh 命令稿是由 samba 套件安裝在您的 /usr/bin 目錄下。

  2. 請更改 Samba 密碼檔的權限設定,以使得只有 root 才擁有讀取與寫入的權限:

    chmod 600 /etc/samba/smbpasswd
  3. 該命令稿並不複製使用者密碼到一個新的檔案,而且在為其設定一個密碼之前,Samba 的使用者帳號是無法使用的。 為了更高的安全性起見,建議您採用與使用者 Red Hat Linux 密碼不同的 Samba 使用者密碼。 如要設定每一個 Samba 使用者的密碼,請使用下列指令(以每一個使用者名稱取代 username):

    smbpasswd username 
  4. 在 Samba 的設定檔案中必須啟用加密的密碼設定,請再一次確認這個 smb.conf 檔案中的下列這些行沒有加上註解符號:

    encrypt passwords = yes
    smb passwd file = /etc/samba/smbpasswd
  5. 請在 shell 提示符號下輸入 service smb restart 指令以確定 smb 服務已經啟動。

  6. 假如您想要自動啟動 smb 服務,您可以使用 ntsysv, chkconfig系統服務設定工具 在啟動時啟用它。 請參考 第14章 以取得更詳細資訊。

提示建議
 

請閱讀 /usr/share/doc/samba-<版本>/docs/htmldocs/ENCRYPTION.html 來學習更多關於密碼加密的資訊(請以所安裝之 Samba 的版本號碼取代 <版本>)。

當您使用 passwd 指令時,可以使用 pam_smbpass PAM 模組來同步使用者的 Samba 密碼與他們的系統密碼。 假如一個使用者執行 passwd 指令,他使用來登入 Red Hat Linux 系統的密碼以及他必須提供來連線到一個 Samba 共享資源的密碼都將會更改。

如要啟用這個特色,請將下列這一行加入到 /etc/pam.d/system-auth 檔案中的 pam_cracklib.so 部份之下:

password required /lib/security/pam_smbpass.so nullok use_authtok try_first_pass

17.2.4. 啟動與停止伺服器

在透過 Samba 分享目錄的伺服器上,必須執行 smb 服務。

以下列指令來檢視 Samba 系統程式的狀態:

/sbin/service smb status

使用下列指令啟動系統程式:

/sbin/service smb start

使用下列指令停止系統程式:

/sbin/service smb stop

如要在開機時啟動 smb 服務,請使用下列指令:

/sbin/chkconfig --level 345 smb on

您也可以使用 chkconfig, ntsysv系統服務設定工具 來設定要在開機時啟動的服務,請參考 第14章 以取得詳細資訊。