Samba 作為 Linux 與 Windows 系統間文件共享的核心橋樑,其配置靈活性極高但也相對複雜。本文將系統梳理 Samba 核心配置參數,結合三種安全模式的實戰部署流程,幫助運維人員快速構建穩定、安全的跨平臺文件共享服務。
hosts allow = 192.168.1. 192.168.2. 127.
此參數至關重要,默認允許所有 IP 訪問,生產環境務必限制為受信任網段,構建第一道安全防線。
printcap name = /etc/printcap
load printers = yes
printing = cups
指定打印機配置文件路徑、啟用打印機共享、設定打印系統類型為 CUPS(現代 Linux 標準)。
guest account = pcguest
username map = /etc/samba/smbusers
配置匿名用戶映射賬號(需確保系統存在該用戶),並通過 smbusers 實現 Windows 用戶名(如 Administrator)到 Linux 用戶名(如 root)的映射。
log file = /var/log/samba/%m.log
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
按客戶端 NetBIOS 名稱分離日誌,便於故障排查;Socket 參數優化可顯著提升傳輸吞吐量。
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
passwd program = /usr/bin/passwd %u
pam password change = yes
強制啟用密碼加密(兼容 Win98/NT 及以上系統),指定 Samba 專用密碼庫,並實現 Linux 系統賬號與 Samba 密碼的雙向同步。
domain master = yes
preferred master = yes
domain logons = yes
wins support = yes
配置為域主瀏覽器、首選主瀏覽器、啟用域登錄腳本與 WINS 服務,構建企業級網絡鄰居環境。
browseable = no
writeable = yes
隱藏共享名,僅允許用戶讀寫自家目錄,保障隱私。
path = /var/spool/samba
printable = yes
browseable = no
指定打印暫存目錄(需預建並授權),僅響應打印作業,不顯示於瀏覽列表。
read only = no
public = yes
允許匿名讀寫,適用於臨時文件交換場景。
最低安全等級,無需用戶名密碼即可訪問,適合完全信任的內網臨時共享。
security = share
guest account = zjz
基於 Share 級修改,引入系統賬號認證體系:
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
賬號構建步驟:
adduser zjz && passwd zjzcat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswdsmbpasswd zjz關鍵提示:系統賬號必須先於 Samba 賬號創建,兩者密碼可不同步但建議保持一致。
委託外部 NT 域控制器或另一台 Samba 服務器進行認證,安全性最高:
security = server
password server = libtserver
# 註釋掉 smb passwd file
客戠機需加入同一域,使用域賬號即可無縫訪問 Samba 資源。
/etc/hosts 解析,確保 Linux 與 Windows 能互解主機名write list 設置local master、os level 參數,避免主瀏覽器選舉衝突testparm # 配置語法檢查
smbclient -L //localhost -U% # 匿名列舉共享
systemctl restart smb nmb # 服務重啟