複数の共有をマウントすると、予期しない動作が発生します。
NFSサーバー
$ -> cd /mnt/raid/nas && ls -lZa
drwxrwxr-x. nas filer unconfined_u:object_r:file_t:s0 file
drwxrwxr-x. nas filer unconfined_u:object_r:file_t:s0 repo
$ -> cat /etc/exports
/mnt/raid/nas 10.1.0.0/18(rw,fsid=0,sync)
/mnt/raid/nas/repo 10.1.0.0/18(rw,all_squash,sync,no_subtree_check,anonuid=501,anongid=503)
/mnt/raid/nas/file/perm 10.1.0.0/18(rw,all_squash,sync,no_subtree_check,anonuid=501,anongid=503)
$ -> id nas && id filer
uid=501(nas) gid=501(nas) groups=501(nas)
uid=502(filer) gid=503(filer) groups=503(filer)
NFSクライアント
$ -> id nas && id filer
uid=501(nas) gid=501(nas) groups=501(nas)
uid=502(filer) gid=503(filer) groups=503(filer)
$ -> cd /mnt/nas && ls -lZa
drwxrwxr-x. nas filer unconfined_u:object_r:mnt_t:s0 repo
drwxrwxr-x. nas filer unconfined_u:object_r:mnt_t:s0 store
$ -> Sudo mount -t nfs4 nas-1:/repo /mnt/nas/repo
$ -> Sudo mount -t nfs4 nas-1:/file/perm /mnt/nas/store/file/perm/
$ -> df -h
nas-1:/repo
550G 240G 283G 46% /mnt/nas/repo
nas-1:/file/perm
550G 240G 283G 46% /mnt/nas/store/file/perm
しかし、それぞれにテストファイルを書き込むと、perm /だけがユーザーを正しく押しつぶします。
$ -> touch /mnt/nas/repo/imagemagick/test_$$.txt
$ -> ls /mnt/nas/repo/imagemagick
-rw-rw-r--. 1 mpurcell mpurcell 0 Apr 5 20:31 test_24571.txt
$ -> touch /mnt/nas/store/file/perm/test_$$.txt
$ -> ls /mnt/nas/store/file/perm/
-rw-rw-r--. 1 nas filer 0 Apr 5 20:32 test_24571.txt
両方のボックスでselinuxを無効にしてみましたが、それも機能しませんでした。
一方のマウントがユーザー/グループを正しく押しつぶし、もう一方のマウントが正しく押しつぶさないのはなぜですか?
---更新---
NFSサーバーでNFSマウントをバインドする必要がありますか?/etc/fstabファイルに奇妙なエントリがあり、共有ディレクトリの1つが(バインドを使用して)マウントされていて、それが機能していました。 NFSサーバーの/ etc/fstabからエントリを削除し、すべてを再マウントすると、NFSクライアントで一度機能していたマウントが機能しなくなりました。
Ughはついにそれを機能させ、all_squash機能をハックするために次のことをしなければなりませんでした。私はしばらく前にそれをしました、そしてなぜそれがしなければならなかったのか覚えていません、しかしそれなしでは私はpermsをきちんと押しつぶすことができませんでした。
$ -> ls /mnt/raid/nas
drwxrwxr-x. 2 nas filer repo
drwxrwxr-x. 3 nas filer repo_all_squash_hack
$ -> ls /mnt/raid/nas/file
drwxrwxr-x. 2 nas filer perm
drwxrwxr-x. 3 nas filer perm_all_squash_hack
次に、/ etc/fstabで:
/mnt/raid/nas/file/perm_all_squash_hack /mnt/raid/nas/file/perm none bind 0 0
/mnt/raid/nas/repo_all_squash_hack /mnt/raid/nas/repo none bind 0 0
これで、すべてが期待どおりに増加します。また、次の方法で確認されます。
$ -> cat /proc/fs/nfs/exports
/mnt/raid/nas 10.1.0.0/18(rw,root_squash,sync,wdelay,no_subtree_check,fsid=0,uuid=d962b590:d8986203:00000000:00000000,sec=1)
/mnt/raid/nas/repo 10.1.0.0/18(rw,root_squash,all_squash,sync,wdelay,no_subtree_check,anonuid=501,anongid=503,uuid=d962b590:d8986203:00000000:00000000,sec=1)
/mnt/raid/nas/file/perm 10.1.0.0/18(rw,root_squash,all_squash,sync,wdelay,no_subtree_check,anonuid=501,anongid=503,uuid=d962b590:d8986203:00000000:00000000,sec=1)