Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux Samba 檔案共享完整指南:從核心概念到實戰配置與 SELinux 整合

編輯:Linux 教學

Samba 是 Linux/Unix 與 Windows 互通檔案與列印服務的標準實作,基於 SMB/CIFS 協定。本文系統整理 Samba 核心架構、進程角色、埠號、套件、配置檔結構、使用者管理、客戶端存取、掛載與 SELinux 整合,並提供可直接落地的實戰範例。

一、 核心概念速覽

項目說明
協定全名SMB (Service Message Block) / CIFS (Common Internet File System)
核心進程smbd(檔案/列印共享)、nmbd(NetBIOS 名稱解析/廣播)、winbindd(AD 域整合,預設不啟動)
關鍵埠137/138 UDP (NetBIOS)、139 TCP (NetBIOS over TCP)、445 TCP (SMB over TCP/IP)
主要套件samba(伺服器端)、samba-swat(Web 管理介面)
配置檔/etc/samba/smb.conf、啟動腳本 /etc/init.d/smb

二、 smb.conf 關鍵段落解析

[global]
workgroup = WORKGROUP
security = user           # 使用者級驗證(share/user/domain/server/ads)
passdb backend = tdbsam   # 密碼資料庫後端
; interfaces = lo eth0 192.168.12.2/24
; hosts allow = 127. 192.168.12.
log file = /var/log/samba/%m.log
max log size = 50

[homes]
comment = Home Directories
browseable = no
writable = yes
; valid users = %S

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes

三、 使用者管理:smbpasswd 實戰

Samba 使用者必須先存在於系統帳號(/etc/passwd),再加入 Samba 密碼資料庫:

useradd zoe
smbpasswd -a zoe   # 新增並設定密碼
smbpasswd -x zoe   # 刪除
smbpasswd -d zoe   # 暫時停用
smbpasswd -e zoe   # 啟用

驗證配置語法:testparm(按 Enter 顯示生效設定)。

四、 實戰:建立公開讀寫共享 [share]

  1. 編輯 /etc/samba/smb.conf 尾端新增:
[share]
comment = my share folder
path = /sharing
browseable = Yes
guest ok = Yes
writable = Yes
  1. testparm 檢查無誤
  2. 建立目錄與權限:
    mkdir /sharing
    chcon -R -t samba_share_t /sharing/ (SELinux 標籤,關鍵步驟)
    setfacl -m u:zoe:rwx /sharing (ACL 精細授權)
  3. 重啟服務:service smb restart

Windows 客戶端即可透過「網路鄰居」或 \\IP\share 存取。

五、 Linux 客戶端存取三種方式

  1. smbclient 互動模式:
    smbclient -L //192.168.0.3/share -U zoe%redhat(列出共享)
    smbclient //192.168.0.3/share -U zoe%redhat(進入類 FTP 操作環境,支援 ls, get, put, mkdir 等指令)
  2. 掛載至本地目錄(需安裝 cifs-utils):
    mount -t cifs //192.168.0.73/share /mnt -o username=redhat
  3. 存取控制列表 (ACL) 進階:
    在 [share] 區段加入:
    hosts allow = 192.168.12.(限制網段)
    write list = @penguin(僅群組成員可寫)
    write list = zoe(僅特定使用者可寫)

六、 SELinux 整合:別直接關閉,善用布林值

檢視 Samba 相關布林值:
getsebool -a | grep samba

常見需開啟的值:

  • samba_enable_home_dirs=on:允許共享使用者家目錄
  • samba_export_all_rw=on:允許匯出讀寫目錄(不受標籤限制)
  • samba_export_all_ro=on:允許匯出唯讀目錄

永久生效:setsebool -P samba_enable_home_dirs=1(-P 寫入磁碟)

七、 總結

Samba 配置核心在於:安全模式選擇(security)、密碼後端(passdb backend)、共享定義(path/browseable/writable/guest ok)、系統帳號與 Samba 密碼同步、SELinux 標籤與布林值。掌握這五點,即能應對 90% 的跨平台檔案共享需求。

Copyright © Windows教程網 All Rights Reserved