Samba 設定:Linux 與 Windows 檔案共享 文章首圖

Samba 設定:Linux 與 Windows 檔案共享

Samba 設定:Linux 與 Windows 檔案共享

在混合作業系統環境中,Linux 伺服器與 Windows 工作站之間的檔案協作是極其常見的需求。Samba 作為開放原始碼的標準解決方案,透過實作 SMB/CIFS 通訊協定,讓 Linux 系統能夠無縫融入 Windows 網路環境。這篇文章將帶領您逐步在 Ubuntu 22.04 或 Debian 12 上架設 Samba 服務,建立一個安全且實用的檔案共享目錄。

安裝與基本配置

首先,我們需要安裝 Samba 套件。在終端機中執行以下指令:

sudo apt update
sudo apt install samba samba-common-bin

安裝完成後,Samba 服務通常會自動啟動。為了確保它在開機時自動運行,請執行:

sudo systemctl enable --now smbd nmbd

這裡的 smbd 負責檔案與列印服務,而 nmbd 則處理 NetBIOS 名稱解析,讓 Windows 用戶端更容易發現您的 Linux 主機。

建立共享目錄與權限

假設我們希望建立一個名為 shared 的目錄,供內部團隊共同存取。我們將其放置在 /srv/samba 下,這是 Linux 系統中存放伺服器資料的標準位置。

sudo mkdir -p /srv/samba/shared

接下來,設定目錄的所有者與權限。為了讓 Samba 用戶端能夠正常讀寫,建議將目錄的所有者設為 root,但將群組設為 sambashare,並賦予群組寫入權限:

sudo chown root:sambashare /srv/samba/shared
sudo chmod 2775 /srv/samba/shared

這裡的 2775 權限碼中,2 代表 setgid 位元,確保新建立的檔案會繼承父目錄的群組屬性,這對於協作環境至關重要。

編輯 Samba 設定檔

主要的設定檔位於 /etc/samba/smb.conf。在編輯之前,建議先備份原始檔:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

使用您偏好的編輯器(如 nanovim)打開設定檔:

sudo nano /etc/samba/smb.conf

在檔案末尾加入以下區塊,定義我們的共享資源:

[shared]
   comment = Team Shared Folder
   path = /srv/samba/shared
   browseable = yes
   read only = no
   guest ok = no
   valid users = @sambashare
   create mask = 0660
   directory mask = 0770

參數說明:

  • valid users:限制只有 sambashare 群組的成員才能存取。
  • guest ok = no:禁止匿名存取,強制要求身份驗證,提升安全性。
  • create maskdirectory mask:控制新檔案與目錄的預設權限。

設定 Samba 用戶密碼

由於我們設定了 guest ok = no,因此必須為 Linux 系統使用者設定 Samba 密碼。請確保該使用者已加入 sambashare 群組:

sudo usermod -aG sambashare your_username

接著,為該使用者設定 Samba 密碼:

sudo smbpasswd -a your_username

系統會提示您輸入兩次密碼。設定完成後,重新啟動 Samba 服務以套用變更:

sudo systemctl restart smbd nmbd

防火牆設定

如果您啟用了 ufw 防火牆,需要允許 SMB 流量通過:

sudo ufw allow samba

這會自動開放 TCP 139、445 和 UDP 137、138 埠口。

常見問題排查

1. Windows 無法連線或提示密碼錯誤

這通常是因為密碼不同步或帳號未正確加入群組所致。請確認 Linux 端使用者確實存在於 sambashare 群組中,並嘗試重新執行 smbpasswd。此外,Windows 10/11 可能預設禁用不安全的 Guest 登入,請在 Windows 註冊機中檢查 LanManWorkstation 的相關設定。

2. 檔案權限異常,無法編輯

若建立的新檔案無法被其他成員編輯,請檢查 create maskdirectory mask 的設定。確保 Samba 設定檔中的權限與 Linux 檔案系統權限一致。您可以使用 ls -l /srv/samba/shared 檢查實際權限,並確認使用者確實屬於 sambashare 群組。

小結

透過上述步驟,您已成功在 Ubuntu 或 Debian 上架設了基本的 Samba 檔案共享服務。現在,您可以透過 Windows 檔案總管輸入 \\your_linux_ip\shared 來存取共享資料夾。雖然此設定適合小型團隊或個人使用,但在生產環境中,建議進一步結合 LDAP 或 Active Directory 進行集中式帳號管理,並定期審計存取日誌以確保資安。Samba 的強大彈性使其成為跨平台協作的理想選擇,掌握其核心配置將為您的系統管理帶來極大的便利。