RockyLinux9 By SystemArch_Alex

Rocky Linux 9 基礎教學 (18):NFS 與 Samba 檔案共享實作指南

跨平台的檔案交換方案

在企業內部環境中,檔案共享是基礎設施的核心需求。NFS (Network File System) 適合 Linux 伺服器間的高速交換,而 Samba 則提供了與 Windows 系統無縫接軌的能力。本篇將教你如何在 Rocky Linux 9 上同時架設這兩種服務。

1. NFS 伺服器架設 (Linux 對 Linux)

安裝必要套件:

sudo dnf install nfs-utils -y
sudo systemctl enable --now nfs-server

編輯 /etc/exports 定義共享目錄與權限:

/mnt/data 192.168.1.0/24(rw,sync,no_root_squash)

套用配置並開放防火牆:

sudo exportfs -arv
sudo firewall-cmd --permanent --add-service={nfs,mountd,rpc-bind}
sudo firewall-cmd --reload
2. Samba 伺服器架設 (Linux 對 Windows)

安裝 Samba:

sudo dnf install samba samba-common samba-client -y

編輯 /etc/samba/smb.conf,新增共享區段:

[shared]
    path = /mnt/samba_share
    writable = yes
    browseable = yes
    guest ok = no
    valid users = @smbgroup
3. 使用者與權限管理

Samba 使用獨立的密碼資料庫,但使用者必須先存在於 Linux 系統中:

sudo useradd -m smbuser
sudo smbpasswd -a smbuser
sudo systemctl enable --now smb nmb
4. SELinux 的關鍵設定

這是許多人失敗的主因。必須允許 SELinux 存取共享目錄:

# NFS 權限
sudo setsebool -P nfs_export_all_rw 1

# Samba 權限
sudo semanage fcontext -a -t samba_share_t "/mnt/samba_share(/.*)?"
sudo restorecon -Rv /mnt/samba_share
5. 客戶端掛載測試

在另一台 Linux 上掛載 NFS:

sudo mount -t nfs 192.168.1.100:/mnt/data /mnt/remote_data

若要開機自動掛載,請將規則寫入 /etc/fstab。透過 NFS 與 Samba 的結合,你可以建立一個強大且靈活的中央儲存節點。