Samba 讓 Linux 透過 SMB/CIFS 協定與 Windows 互通檔案與列印服務。本文以 RHEL 5.1、Samba 3.0.23c 為實測環境,從安裝驗證、服務架構、核心配置、客戶端工具到掛載應用,完整呈現生產級部署流程。
# 檢查是否已安裝
rpm -q samba
# 未安裝時從光碟/源安裝
rpm -ivh samba-3.0.23c-2.i386.rpm
安裝完成產生:
/etc/samba/smb.conf(核心配置)
/etc/init.d/smb(啟動腳本)
雙服務架構:
smbd:核心檔案/列印共享服務(必須啟動)
nmbd:NetBIOS 名稱解析/廣播(啟用後可用 NetBIOS 名稱存取,否則僅支援 IP)
/etc/init.d/smb start
# Starting SMB services: [OK]
# Starting NMB services: [OK]
假設 Samba 伺服器 IP 192.168.60.231、工作群組 ixdba:
\\192.168.60.231\共享名\\ixdba\共享名(需 nmbd 運行)smbclient 實戰# 需密碼
smbclient -L //192.168.60.231 -U admin
# 無密碼
smbclient -L //192.168.60.231
smbclient //192.168.60.231/Linuxdata -U admin
# 進入 smb: \> 提示符,支援 ls, get, put, mkdir, chmod, tar 等指令
mount -t cifs //192.168.60.231/Linuxdata /mnt/samba -o username=admin,password=xxx
smb.conf 範例解析[global]
workgroup = IXDBA.NET
security = user
passdb backend = tdbsam
[Linuxdata]
comment = Linux Data Share
path = /Linuxdata
browseable = yes
writable = yes
valid users = admin, user1
write list = admin
關鍵參數:
security = user:使用者級驗證(最常用)
passdb backend = tdbsam:密碼儲存於 /etc/samba/passdb.tdb
valid users:允許存取的使用者清單
write list:擁有寫入權限的使用者/群組(@group 表示群組)
useradd admin
smbpasswd -a admin # 加入 Samba 並設密碼
# 或 smbpasswd -a -n admin # 不設密碼(極不建議)
Samba 部署核心在於:服務雙進程(smbd/nmbd)、安全模式選擇、系統帳號與 Samba 密碼同步、共享定義最小權限原則。掌握 testparm 驗證配置、smbclient 除錯連線、mount.cifs 整合應用,即可構建穩定高效的異構檔案共享服務。