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 に直接マウントするにはどうすればよいですか? 「mount -t nfs4 server:/home/share /sharefolder」と試すと、「操作は許可されていません」というエラーが表示されます
答え1
mount -t nfs4 server:/home/share /sharefolder
クライアント側のコマンドは正しいように見えます。また、テストしたところ、セットアップは正常に機能しました。
もちろん、コマンドは root として入力するか、またはsudo
root と一緒に使用する必要があります。「操作は許可されていません」というエラー メッセージは、誤って非 root ユーザーとしてコマンドを実行したか、共有名を誤って入力した可能性があることを示しています。
エクスポートしてマウントした場合でもserver:/home/share
、NFSv4サーバーは自動生成する必要があることに注意してください。仮想エクスポート/
およびの場合/home
。ただし、これらは NFS サーバーの実際の/
や ではなく、実際にエクスポートされたディレクトリに到達するために必要な最小限のサブディレクトリのみを含む仮想の読み取り専用ディレクトリです。共有がマウントされると、 NFS サーバーで/home
次のようになります。/proc/fs/nfsd/exports
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
これらのサービスを特定のゾーンでのみ許可したい場合は、次のようにゾーンを指定することもできます。--zone=nfszone
このソリューションを徹底的にテストしたわけではないので、すべての機能(ファイルロックなど)を動作させるには追加のポートを開く必要があるかもしれません。https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/storage_administration_guide/s2-nfs-nfs-firewall-config