一、使用Samba實現CentOS文件共享(適用于Windows/Linux跨平臺共享)
Samba是CentOS上最常用的文件共享服務,支持與Windows、Linux、macOS等系統無縫通信,以下是詳細配置步驟:
通過YUM/DNF包管理器安裝Samba主程序、客戶端工具及通用配置文件:
sudo yum install samba samba-client samba-common -y # CentOS 7
sudo dnf install samba samba-client samba-common -y # CentOS 8/Stream
安裝完成后,Samba服務不會自動啟動,需后續手動開啟。
選擇需要共享的目錄(如/srv/samba/my_share),創建目錄并賦予初始權限(生產環境建議細化權限,避免過度開放):
sudo mkdir -p /srv/samba/my_share
sudo chmod -R 777 /srv/samba/my_share # 臨時開放所有權限(測試用)
注意:chmod 777僅為測試方便,正式環境中應根據用戶需求設置最小權限(如770)。
編輯Samba主配置文件/etc/samba/smb.conf(建議先備份):
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo nano /etc/samba/smb.conf
在文件末尾添加共享定義(以my_share為例):
[my_share]
comment = My Personal Shared Folder # 共享描述
path = /srv/samba/my_share # 共享目錄路徑
browseable = yes # 是否允許瀏覽
writable = yes # 是否可寫
valid users = user1 user2 @mygroup # 允許訪問的用戶/組(需提前創建)
create mode = 0664 # 新建文件權限
directory mode = 0775 # 新建目錄權限
關鍵參數說明:
valid users:限制訪問用戶,提升安全性(避免使用guest ok = yes開放匿名訪問);create mode/directory mode:控制共享內文件的默認權限。Samba用戶需為系統用戶,且需通過smbpasswd命令添加Samba密碼:
sudo useradd user1 # 創建系統用戶(若不存在)
sudo smbpasswd -a user1 # 添加Samba用戶并設置密碼
輸入密碼后,該用戶即可通過Samba訪問共享。
啟動Samba核心服務(smb)及NetBIOS服務(nmb,可選,用于Windows網絡發現):
sudo systemctl start smb
sudo systemctl enable smb # 開機自啟
sudo systemctl start nmb # 可選
sudo systemctl enable nmb # 可選
通過systemctl status smb命令檢查服務狀態,確保無報錯。
若系統啟用了firewalld防火墻,需添加Samba服務規則:
sudo firewall-cmd --permanent --add-service=samba # 永久放行
sudo firewall-cmd --reload # 重新加載規則
若使用iptables,需手動添加端口137-139(UDP/TCP)和445(TCP)規則。
smbclient命令測試連接:smbclient //localhost/my_share -U user1
輸入密碼后,若進入共享目錄,說明配置成功。\\<CentOS_IP>\my_share,輸入Samba用戶名和密碼即可訪問。telnet <IP> 445測試端口連通性;chown -R user1:user1 /srv/samba/my_share),且SELinux未阻止訪問(臨時關閉測試:setenforce 0)。二、使用NFS實現CentOS文件共享(適用于Linux/Unix系統間共享)
NFS(Network File System)是Linux/Unix系統間的原生共享協議,傳輸效率高,但不支持Windows系統(需安裝NFS客戶端)。
在服務端安裝nfs-utils(含NFS服務)和rpcbind(RPC端口映射工具):
sudo yum install nfs-utils rpcbind -y # CentOS 7
sudo dnf install nfs-utils rpcbind -y # CentOS 8/Stream
安裝完成后,啟動rpcbind(NFS依賴)和服務端服務:
sudo systemctl start rpcbind
sudo systemctl enable rpcbind
sudo systemctl start nfs-server
sudo systemctl enable nfs-server
選擇共享目錄(如/mnt/nfs_share),創建目錄并設置權限:
sudo mkdir -p /mnt/nfs_share
sudo chmod -R 777 /mnt/nfs_share # 臨時開放權限(測試用)
注意:生產環境中建議將共享目錄所有者設置為特定用戶(如chown -R nfsuser:nfsuser /mnt/nfs_share)。
編輯/etc/exports文件(定義共享目錄及訪問權限):
sudo nano /etc/exports
添加以下內容(以/mnt/nfs_share為例,允許192.168.1.0/24網段訪問):
/mnt/nfs_share 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
參數說明:
rw:允許讀寫;sync:同步寫入磁盤(避免數據丟失);no_root_squash:允許root用戶訪問(謹慎使用,若不需要可改為root_squash);no_subtree_check:禁用子樹檢查(提升性能)。導出共享目錄,使配置生效:
sudo exportfs -ra
通過showmount -e localhost命令查看已共享的目錄,確認配置正確。
NFS需要開放多個端口(111、2049等),可通過firewalld添加服務規則:
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload
在客戶端安裝nfs-utils:
sudo yum install nfs-utils -y # CentOS 7
sudo dnf install nfs-utils -y # CentOS 8/Stream
創建掛載點(如/mnt/nfs_client),并掛載共享目錄:
sudo mkdir -p /mnt/nfs_client
sudo mount 192.168.1.100:/mnt/nfs_share /mnt/nfs_client # 替換為服務端IP
可選:將掛載信息添加到/etc/fstab文件,實現開機自動掛載:
192.168.1.100:/mnt/nfs_share /mnt/nfs_client nfs defaults 0 0
安全提示:
192.168.1.0/24),避免暴露在公網;guest ok = yes(Samba)或rw(NFS)開放匿名訪問,建議通過用戶認證控制權限;