在 SUSE Linux 上架設 Samba 服務,讓 Windows 用戶透過網路芳鄰存取 Linux 檔案。本文說明編輯 smb.conf、建立共享目錄、設定權限、啟用服務與開機自動啟動的完整流程。
# 安裝 Samba (SUSE 通常預裝,若無)
sudo zypper install samba
# 建立共享目錄並設定權限
sudo mkdir -p /opt/share
sudo chmod 777 /opt/share # 依需求調整,生產環境建議更細緻的 ACL
sudo vi /etc/samba/smb.conf
在檔案末尾新增:
[opt]
comment = Shared Directory for Windows
path = /opt/share
browseable = yes
read only = no
guest ok = yes
writable = yes
create mask = 0664
directory mask = 0775
force user = nobody
force group = users
| 參數 | 功能 |
|---|---|
path | 共享目錄實際路徑 |
browseable | 是否在網路芳鄰顯示 |
guest ok | 允許匿名存取(無需帳密) |
writable | 允許寫入 |
create mask | 新建檔案預設權限 |
directory mask | 新建目錄預設權限 |
force user/group | 強制以指定身分存取,避免權限糾葛 |
# 重啟 Samba 服務
sudo systemctl restart smb nmb
# 或舊版
sudo service smb restart
# 檢查服務狀態
sudo systemctl status smb nmb
# 測試設定語法
testparm
# systemd 方式 (現代 SUSE)
sudo systemctl enable smb nmb
# SysVinit 方式 (舊版)
sudo chkconfig --level 35 smb on
sudo chkconfig --level 35 nmb on
\\<Linux_IP> 或 \\<主機名>。opt 共享資料夾,雙擊進入可讀寫檔案。guest ok = yes 免密碼存取。若需帳號密碼保護,修改 smb.conf 全域區段:
[global]
security = user
passdb backend = tdbsam
map to guest = Bad User
建立 Samba 專用帳號(需先有系統帳號):
sudo useradd -M -s /sbin/nologin smbuser
sudo smbpasswd -a smbuser # 設定 Samba 密碼
共享區段移除 guest ok = yes,加入 valid users = smbuser。
# SuSEfirewall2
sudo SuSEfirewall2 open EXT TCP 137 138 139 445
sudo SuSEfirewall2 open EXT UDP 137 138 139 445
# 或 firewalld
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload
完成上述設定,SUSE Linux 即可穩定提供檔案共享服務給 Windows 用戶存取。建議依資料敏感度選擇匿名或認證模式,並定期審核存取日誌。