萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Windows 10 資訊

Samba 跨平台檔案共享完整配置實戰

場景需求

環境:Red Hat 6.1 伺服器。目標:提供共享目錄供 Windows 客戶端存取,權限模型——管理員讀寫、普通用戶唯讀。

步驟 1:安裝 Samba 套件

yum install samba -y
rpm -qa | grep samba
# 預期輸出:samba, samba-common, samba-client, samba-winbind-clients

步驟 2:建立系統與 Samba 用戶

# 管理員用戶(讀寫權限)
useradd -d /data/share smbadmin
smbpasswd -a smbadmin

# 普通用戶(唯讀權限)
useradd smbguest
smbpasswd -a smbguest

# 建立共享目錄並設定基礎權限
mkdir -p /data/share
chown smbadmin:smbadmin /data/share
chmod 750 /data/share

步驟 3:啟動服務並設定開機自啟

service smb restart
service nmb restart
chkconfig smb on
chkconfig nmb on

步驟 4:SELinux 布爾值配置

setsebool -P samba_enable_home_dirs on
getsebool -a | grep samba
# 確認 samba_enable_home_dirs --> on

若共享目錄非家目錄,還需設定:setsebool -P samba_export_all_rw on 或為目錄打標籤 chcon -t samba_share_t /data/share。

步驟 5:核心配置檔 /etc/samba/smb.conf

[global]
    workgroup = WORKGROUP
    security = user          # 採用用戶級安全性,較 share 更安全
    passdb backend = tdbsam
    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw
    map to guest = Bad User
    log file = /var/log/samba/log.%m
    max log size = 50
    # 字符集設定
    display charset = UTF-8
    unix charset = UTF-8
    dos charset = CP936

[share]
    comment = Department Share
    path = /data/share
    public = no              # 不允許匿名
    writable = yes
    printable = no
    valid users = @smbgroup  # 僅允許群組成員
    write list = smbadmin    # 僅管理員可寫
    force group = smbgroup   # 強制群組權限
    create mask = 0660
    directory mask = 0770

步驟 6:建立群組並加入用戶

groupadd smbgroup
usermod -aG smbgroup smbadmin
usermod -aG smbgroup smbguest
# 重啟 smb 生效
service smb restart

步驟 7:防火牆放行

# iptables 範例
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
service iptables save

Windows 客戶端驗證

  1. Win+R 輸入 \\伺服器IP
  2. 以 smbadmin 登入 → 可讀寫
  3. 以 smbguest 登入 → 唯讀

常見問題排查

  • 權限被拒:檢查 SELinux 標籤、Linux 檔案權限、Samba write list 設定
  • 看不見共享:確認 nmb 服務運行、防火牆、workgroup 一致
  • 中文亂碼:確保 unix charset = UTF-8、dos charset = CP936
copyright © 萬盛學電腦網 all rights reserved