NFS 掛載資料夾,但不掛載文件

NFS 掛載資料夾,但不掛載文件

我在使用 NFSv4 掛載來顯示檔案時遇到問題

Server: Ubuntu 20.04, 192.168.1.1
Client: Ubuntu 18.04, 192.168.1.2

在伺服器上,我有一個資料夾和文件

/home/server/files/myfile.pdf

(注意「伺服器」用作使用者帳戶名稱)。這是原始文件的完整所有權和權限鏈:

drwxr-xr-x  root:root        /
drwxr-xr-x  root:root        /home/
drwxr-xr-x  server:server    /home/server/
drwxrwxr-x  server:nfsgroup  /home/server/files/
-rwxrwxrwx  server:nfsgroup  /home/server/files/myfile.pdf

在這裡您可以看到我創建的實用程式 'user':'group' 的範例:

nfsuser  uid=127
nfsgroup gid=134

“nfsuser”和“server”都位於“nfsgroup”群組中。

在伺服器上,我將/files/目錄綁定安裝到/srv/nfs4/files/in /etc/fstab,並帶有一個條目

/home/server/files    /srv/nfs4/files    none    bind    0    0

這是成功的,我可以清楚地看到該/srv/nfs4/files/myfile.pdf文件為

-rwxrwxrwx  server:nfsgroup  /srv/nfs4/files/myfile.pdf

這是已安裝和提供的文件的完整所有權和權限鏈:

drwxr-xr-x  root:root        /
drwxr-xr-x  root:root        /srv/
drwxrwxr-x  server:nfsgroup  /srv/nfs4/
drwxrwxr-x  server:nfsgroup  /srv/nfs4/files/
-rwxrwxrwx  server:nfsgroup  /srv/nfs4/files/myfile.pdf

/srv/nfs4/現在,我想將包含 bind-mounted 的整個目錄匯出files/到客戶端。我在伺服器中有此條目/etc/exports

/srv/nfs4    192.168.1.2(rw,sync,fsid=0,root_squash,all_squash,anonuid=127,anongid=134,no_subtree_check)

請特別注意,該all_squash,anonuid=127,anongid=134群組設定會導致客戶端使用者「client」在權限方面被識別為「nfsgroup」中的「nfsuser」。

使用 匯出此檔案後,我使用命令$ sudo exportfs -ra將其安裝到用戶端上的根級目錄。/nsffiles/$ sudo mount -t nfs 192.168.1.1:/srv/nfs4 /nsffiles

結果是我可以看到客戶端上的匯出files/目錄。/nsffiles/但是,我看不到它的內容:

$ ls -Alhd /nsffiles/
drwxrwxr-x 8 client 134 4.0K Nov 14 20:37 /nsffiles/

$ ls -Alhd /nsffiles/files/
drwxr-xr-x 2 root root 4.0K Nov 14 20:36 /nsffiles/files/

$ ls -Alh /nsffiles/files/
total 0

NFS 用戶端可以看到該目錄這一事實files/表明我的 NFS 服務或本地網路沒有任何根本問題。沒有防火牆問題,我不需要安裝任何額外的軟體包。另外,我之前讓 NFS 掛載在稍微不同的資料夾結構下完美工作(files/例如,位於主目錄之外的目錄中),所以我知道在這方面的基礎知識很好。

我認為它現在不起作用的最可能原因是先前設定和當前設定之間的微妙所有權/權限變更。特別地,掛載的目錄是

server side:    `/srv/nfs4/`    drwxrwxr-x  server:nfsgroup
client side:    `/nsffiles/`    drwxrwxr-x  client:134

包含的目錄是

server side:    `/srv/nfs4/files/`    drwxrwxr-x  server:nfsgroup
client side:    `/nsffiles/files/`    drwxr-xr-x  root:root

也就是說,對於掛載的目錄,權限轉換為server:nfsgroup -> client:134,這是預期的。但是,所包含目錄的權限轉換為server:nfsgroup -> root:root.為什麼root:root又不呢client:134

此伺服器故障問題聽起來很相似,但它涉及 Windows,我不能說唯一的答案適用。

這個 Unix.SE問題涉及 Windows/Linux 設定的 NFS 檔案權限;我能從中收集到的所有資訊都是我已經知道並且認為我已經處理好的事情。

請僅在您知道自己在說什麼的情況下回复。如果您無法抗拒發布瘋狂猜測,請將其標識為瘋狂猜測。或者,您知道,提供足夠的信息,以便您的讀者可以區分。

相關內容