安装多个共享时出现意外行为。
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 文件中有一个奇怪的条目,其中一个共享目录正在被挂载(使用绑定),并且该目录正在运行。我从 NFS 服务器上的 /etc/fstab 中删除了该条目,重新挂载了所有内容,现在 NFS 客户端上曾经工作的挂载不再起作用。
答案1
唉,终于让它工作了,不得不做以下事情来破解 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)