NFSサーバー側:
[USER@NFSSERVER ~]$ cat /etc/exports
/var/foo/logs 10.75.16.4(ro,sync)
/var/foobar 10.100.102.0/24(rw,sync)
[USER@NFSSERVER ~]$
NFSクライアント:
[root@NFSCLIENT ~]# grep nfs /etc/fstab
10.100.102.34:/var/foobar /var/foobar nfs auto 0 0
[root@NFSCLIENT ~]#
NFS クライアントは 10.100.102.0/24 にあります。
他のNFSクライアントはこのディレクトリに書き込むことができます。
質問:
[root@NFSCLIENT foobar]# touch testing
touch: cannot touch `testing': Permission denied
[root@NFSCLIENT foobar]#
質問:なぜ私たちは書く権利がないのですか? FSはRWとしてインストールされ、両方ともRHEL 6とNFSv4です。
答え1
このオプションなしでファイルシステムをエクスポートすると、no_root_squash
rootユーザーIDはサーバー側で「anonymous」または「nobody」にマップされます。これは書き込み権限を効果的に拒否します。これはNFSマウントを介したSUIDタイプの攻撃から保護するための常識的なデフォルトですが、慣れていない人にはこの問題が発生する可能性があります。通常、非rootユーザー(UID!= 0)でNFマウントにアクセスできます。または、サーバーから再エクスポートしてクライアントに再マウントして、マウントされたファイルシステムに書き込む権限を取得するオプションを追加することもできno_root_squash
ます/etc/exports
。クライアントのルートと同様。