Samba 透過 /etc/samba/smb.conf 設定,修改後需 service smb restart 或 reload 生效。本文系統拆解 [global] 關鍵參數(工作群組、安全模式、日誌、Socket 優化、WINS、列印、字碼頁)、三種安全模式 (share/user/server/domain) 遷移步驟、共享區塊參數 (path, browseable, writable, valid users, create mask 等)、建立 Samba 使用者 (smbpasswd, mksmbpasswd.sh)、測試指令 (testparm, smbclient, smbstatus) 完整實務操作流程。
workgroup = MYGROUP # 工作群組名,建議與 Windows 一致
server string = Samba Server # 網路上鄰居顯示備註
security = user # 安全模式: share/user/server/domain
encrypt passwords = yes # 必須啟用加密密碼 (現代 Windows 預期)
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # 傳輸效能優化
log file = /var/log/samba/%m.log
max log size = 0 # 0=不限制, 單位 KB
wins support = yes # 啟用 WINS 伺服器
dns proxy = no # 不代理 DNS 查詢
| 模式 | 驗證方式 | 適用場景 | 關鍵設定 |
|---|---|---|---|
| share | 無用戶驗證,僅共享密碼 | 極簡單環境 | security = share, guest account |
| user | Samba 內建用戶資料庫 | 中小型獨立伺服器 | security = user, smbpasswd -a user |
| server | 委派給另一台 SMB 伺服器 (如 NT PDC) | 既有 NT 域環境 | security = server, password server = NT_PDC |
| domain | 加入 Windows 域,由 PDC 驗證 | 企業域環境 | security = domain, net join |
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
[sharedoc]
path = /home/sharedoc
public = no
writable = yes
valid users = mary, fred
create mask = 0765
[pub]
path = /home/pub
public = yes
writable = yes
create mask = 0765
useradd -s /sbin/nologin user1 → passwd user1smbpasswd -a user1 (輸入 Samba 密碼)cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd → 再逐一 smbpasswd user1 設定密碼。service smb restart
testparm # 語法檢查
testparm /etc/samba/smb.conf client_ip # 模擬客戶端看可存取資源
smbclient -L localhost # 列出本機共享
smbstatus # 顯示目前連線/鎖定/開啟檔案
service smb reload # 熱重載設定
chkconfig --level 35 smb on # 開機自啟
C:\Windows\System32\drivers\etc\hosts 加入 Samba 伺服器 IP/主機名對應。/etc/hosts 加入 Windows 客戶端 IP/主機名。掌握 smb.conf 核心邏輯,即可建立穩定、安全、高效能的跨平台檔案共享服務。