29.10. Microsoft® Windows® 用戶端檔案與列印服務 (Samba)

Samba 是熱門的開放源碼軟體套件,使用 SMB/CIFS 通訊協定提供檔案與列印服務,此通訊協定內建於 Microsoft® Windows® 系統,在非 Microsoft® Windows® 的系統可透過安裝 Samba 客戶端程式庫來支援此協定。此通訊協定讓客戶端可以存取共享的資料與印表機,這些共享的資源可掛載到一個本機的磁碟機,而共享的印表機則可以當做本機的印表機使用。

On FreeBSD, the Samba client libraries can be installed using the net/samba48 port or package. The client provides the ability for a FreeBSD system to access SMB/CIFS shares in a Microsoft® Windows® network.

A FreeBSD system can also be configured to act as a Samba server by installing the same net/samba48 port or package. This allows the administrator to create SMB/CIFS shares on the FreeBSD system which can be accessed by clients running Microsoft® Windows® or the Samba client libraries.

29.10.1. 伺服器設定

Samba 的設定位於 /usr/local/etc/smb4.conf,必須先設定這個檔案才可使用 Samba

要共享目錄與印表機給在工作群組中的 Windows® 客戶端的簡易 smb4.conf 範例如下。對於涉及 LDAP 或 Active Directory 的複雜安裝,可使用 samba-tool(8) 來建立初始的 smb4.conf

[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
netbios name = ExampleMachine
wins support = Yes
security = user
passdb backend = tdbsam

# Example: share /usr/src accessible only to 'developer' user
[src]
path = /usr/src
valid users = developer
writable  = yes
browsable = yes
read only = no
guest ok = no
public = no
create mask = 0666
directory mask = 0755

29.10.1.1. 全域設定

/usr/local/etc/smb4.conf 中加入用來描述網路環境的設定有:

workgroup

要提供的工作群組名稱。

netbios name

Samba 伺服器已知的 NetBIOS 名稱,預設為主機的 DNS 名稱第一節。

server string

會顯示於 net view 輸出結果以及其他會尋找伺服器描述文字並顯示的網路工具的文字。

wins support

不論 Samba 是否要作為 WINS 伺服器,請不要在網路上開啟超過一台伺服器的 WINS 功能。

29.10.1.2. 安全性設定

/usr/local/etc/smb4.conf 中最重要的設定便是安全性模式以及後端密碼格式,以下項目管控的選項有:

security

最常見的設定為 security = share 以及 security = user,若客戶端使用的使用者名稱與在 FreeBSD 主機上使用的使用者名稱相同,則應該使用使用者 (user) 層級的安全性,這是預設的安全性原則且它會要求客戶端在存取共享資源前先登入。

安全性為共享 (share) 層級時,客戶端存取共享資源不需要先使用有效的使用者名稱與密碼登入伺服器,在是在舊版 Samba 所採用的預設安全性模式。

passdb backend

Samba 支援數種不同的後端認証模式,客戶端可以使用 LDAP, NIS+, SQL 資料庫或修改過的密碼檔來認証,建議的認証方式是 tdbsam,適用於簡易的網路環境且在此處說明,對於較大或更複雜的網路則較建議使用 ldapsam,而 smbpasswd 是舊版的預設值,現在已廢棄不使用。

29.10.1.3. Samba 使用者

FreeBSD 使用者帳號必須對應 SambaSAMAccount 資料庫, 才能讓 Windows® 客戶端存取共享資源,要對應既有的 FreeBSD 使用者帳號可使用 pdbedit(8)

# pdbedit -a username

本節只會提到一些最常用的設定,請參考 官方 Samba HOWTO 來取得有關可用設定選項的額外資訊。

29.10.2. 啟動 Samba

要在開機時啟動 Samba,可加入下行到 /etc/rc.conf

samba_server_enable="YES"

要立即啟動 Samba

# service samba_server start
Performing sanity check on Samba configuration: OK
Starting nmbd.
Starting smbd.

Samba 由三個獨立的 Daemon 所組成,nmbdsmbd daemon 可透過 samba_enable 來啟動,若同時也需要 winbind 名稱解析服務則需額外設定:

winbindd_enable="YES"

Samba 可以隨時停止,要停止可輸入:

# service samba_server stop

Samba 是一套擁有能整合 Microsoft® Windows® 網路功能的複雜軟體套件,除了在此處說明的基礎設定,要取得更多的功能資訊,請參考 http://www.samba.org

本文及其他文件,可由此下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

若有 FreeBSD 方面疑問,請先閱讀 FreeBSD 相關文件,如不能解決的話,再洽詢 <questions@FreeBSD.org>。

關於本文件的問題,請洽詢 <doc@FreeBSD.org>。