Linux
NFS - 多個子目錄 - 只有一個按預期擠壓
安裝多個共享時出現意外行為。
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 客戶端上曾經工作的安裝不再工作。
呃終於讓它工作了,必須執行以下操作才能破解 all_squash 功能。我不久前做過,不記得為什麼必須這樣做,但沒有它我就無法正確地燙髮。
$ -> 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)