Samba#
SMB 是跨平台(Windows/Linux/macOS)最通用的網路檔案共享協定
SMB (Server Message Block) 在 Linux 上通常透過 Samba 軟體實作。它不僅支援單純的檔案傳輸,還支援使用者權限認證、印表機共享,甚至可以讓 Linux 加入 Windows 的 Active Directory (AD) 網域。相對於 NFS,SMB 在混合作業系統環境中具有更好的相容性與權限管理能力。
Install#
Samba 服務由 samba 套件提供,用戶端工具則為 smbclient 或 cifs-utils。
# 伺服器端安裝
$ sudo apt install samba
# 用戶端掛載工具
$ sudo apt install cifs-utilsSetting in up#
Configuration File#
Samba 的核心設定檔位於 /etc/samba/smb.conf,基本區段如下:
[MyShare]
comment = Public Storage
path = /home/samba/public
writable = yes
guest ok = no
valid users = @smbgroupOperate#
伺服器端:新增 Samba 使用者(需先有系統帳號)#
sudo smbpasswd -a username
伺服器端:重啟服務套用設定#
sudo systemctl restart smbd
用戶端:掛載共享目錄#
sudo mount -t cifs -o username= user / [server_ip] / [share_name] /mnt/smb
| 參數 | 範例 (於 /etc/samba/smb.conf) | 說明 |
|---|---|---|
path | path = /srv/samba/share | 共享路徑。指定實體硬碟上要分享的資料夾位置。 |
writable | writable = yes | 可寫入。允許具備權限的使用者在上傳、修改或刪除檔案。 |
browsable | browsable = yes | 可瀏覽。是否在網路芳鄰中公開顯示此資料夾名稱。 |
guest ok | guest ok = yes | 訪客存取。允許無需帳號密碼的匿名存取(安全性較低)。 |
valid users | valid users = john, @devs | 限定用戶。僅允許特定帳號或群組(@開頭)進入。 |
read only | read only = yes | 唯讀模式。即使檔案系統有權限,透過網路也只能讀取。 |
| 指令 | 功能 | 詳細解釋 |
|---|---|---|
testparm | 檢查語法 | 掃描 /etc/samba/smb.conf 是否有語法錯誤或不合規設定。 |
smbstatus | 查看連線狀態 | 列出目前有哪些用戶端連線到伺服器,以及正在存取的檔案。 |
smbpasswd | 密碼管理 | 專用於管理 Samba 獨立的加密密碼庫,可新增、刪除或停用用戶。 |
smbclient -L <ip> | 列出共享資源 | 從用戶端視角查詢遠端伺服器開放了哪些共享資料夾。 |
Reference#
Official docs: