運行 CentOS 8
server side: /etc/exports:
/home/share *(ro)
/home 和 /home/share 屬於 root.root,對目錄有 755 權限,對檔案有 644 權限。
client side:
mount -t nfs4 server:/ /sharefolder
如何直接掛載 /home/share 到 /sharefolder 而不是掛載 fs 的根目錄?如果我嘗試“mount -t nfs4 server:/home/share /sharefolder”,則會收到“不允許操作”錯誤
答案1
mount -t nfs4 server:/home/share /sharefolder
看起來像是一個正確的客戶端命令,並且您的設定對我有用,因為我剛剛測試了它。
當然,你必須以 root 身分輸入該指令,或使用sudo
它。 「不允許操作」錯誤訊息表示您可能不小心以非 root 使用者身分執行了該命令,或輸入了錯誤的共用名稱。
請注意,即使您只是匯出並掛載server:/home/share
,NFSv4 伺服器也需要自動生成虛擬出口對於/
和/home
。但是,這些不是 NFS 伺服器的真實/
的或/home
,而是虛擬的唯讀目錄,僅包含到達實際匯出的目錄所需的最少子目錄。掛載共享後,您可以/proc/fs/nfsd/exports
在 NFS 伺服器上看到:
cat /proc/fs/nfsd/exports
# Version 1.1
# Path Client(Flags) # IPs
/home *(ro,insecure,no_root_squash,sync,no_wdelay,no_subtree_check,v4root,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=390003:390004:390005:1)
/home/share *(ro,root_squash,sync,wdelay,no_subtree_check,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=1)
/ *(ro,insecure,no_root_squash,sync,no_wdelay,no_subtree_check,v4root,fsid=0,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=390003:390004:390005:1)
答案2
經過一些測試,我設法重現了您的問題,結果證明是防火牆問題。請確保防火牆已停用,然後驗證您的nfs
共用是否正常運作。
假設您使用firewalld
:
sudo systemctl stop firewalld
一旦確定其nfs
按預期工作,您將需要更改防火牆配置。
nfs
依賴其他守護進程,因此為了nfs
正常工作,您不僅需要允許nfs
,而且還mountd
需要允許rpc-bind
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --reload
如果您希望僅允許特定區域使用這些服務,您也可以透過新增 ie 來指定區域--zone=nfszone
我還沒有徹底測試這個解決方案,您可能需要打開額外的連接埠才能使所有功能正常工作(即文件鎖定)請參閱https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/storage_administration_guide/s2-nfs-nfs-firewall-config