Nfs
為什麼我有一個只讀的 NFS4?
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 CLIENT 在 10.100.102.0/24
其他 NFS CLIENT 可以寫入此目錄。
問題:
[root@NFSCLIENT foobar]# touch testing touch: cannot touch `testing': Permission denied [root@NFSCLIENT foobar]#
問題:為什麼我們沒有寫權限?FS 掛載為 RW,兩者都是 RHEL 6,NFSv4。
當您在沒有該
no_root_squash
選項的情況下導出文件系統時,您的 root 使用者 ID 會在伺服器端映射到“匿名”或“無人”。這實際上拒絕了您的寫入權限。通過 NFS 掛載來防範 SUID 類型的攻擊是一種常識性預設設置,但對於不熟悉它的人來說,它可能會導致類似的問題。您可以作為非root使用者(UID!= 0)正常訪問NFs掛載,或者您可以添加no_root_squash
選項/etc/exports
,從伺服器重新導出,並在客戶端重新掛載以獲得寫入掛載的權限文件系統作為客戶端上的根。