「ls」顯示掛載的 NFS 資料夾中沒有文件,但「cd」有效

「ls」顯示掛載的 NFS 資料夾中沒有文件,但「cd」有效

/vol/mynfsLinux客戶端掛載NFS共享。它不顯示任何資料夾,ls並且 bash 補全也不起作用/vol/mynfs。但更改到子目錄後,所有檔案都可見。

$ ls /vol/mynfs
total 0
$ cd /vol/mynfs/test
$ ls  # shows all files as expected now.

為什麼文件首先不可見以及如何使它們始終可見?

答案1

我猜你的 NFS 共享是自動掛載的,是嗎?

在實際安裝共用之前,/vol/mynfs它只是一個空目錄,因此ls顯示如下。移動到該目錄會強制安裝實際發生,因此之後ls顯示現在安裝的目錄的內容。

只要實際安裝了共享,這些文件就可以列出。如果隨後卸載共用(在不活動逾時後手動或自動),目錄將再次顯示為空。

如果您出於某種原因需要這樣做,類似的事情(cd /vol/mynfs; ls)會強制安裝並執行。ls

答案2

確保您具有該目錄的讀取權限。
嘗試ls -la /vol/mynfs/.查看 的輸出.,您的使用者或群組是否具有讀取權限?
您可以學習讀取權限這裡

如果您具有執行存取權限但沒有讀取權限,您將能夠開啟該資料夾及其子目錄,但無法列出它們(您的確切問題)。來源
sudo您可以透過執行來解決此問題(如果您不擁有該資料夾,則 可能需要 root/use );

chmod u+r /vol/mynfs/.

這將為該資料夾的使用者新增讀取權限。

/.如果它是符號鏈接,則可能需要命令中的額外內容,我不知道。

答案3

我也嘗試過這個案例。

解決方案1

就我而言,我使用的是 QNAP NAS 伺服器。

我的 NAS 共用資料夾名稱是“mynfs”

ssh 到 QNAP NAS 伺服器並 chmod 750 mynfs

chmod 750 /share/NFSv=4/mynfs

NFS 伺服器端 chmod 設定後,我的客戶端 nfs 現在可以顯示所有檔案和目錄。

解決方案2

此解決方案是修改客戶端/etc/fstab。以下範例中,10.0.0.254 是我的 QNAP NAS 伺服器。

10.0.0.254:/mynfs     /vol/mynfs     nfs     defaults        0       0

修改為

10.0.0.254:/mynfs    /vol/mynfs     nfs     relatime,vers=4.1,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,local_lock=none  0       0

修改/etc/fstab後,再掛載/vol/mynfs。這些檔案出現在 /vol/mynfs 中。

相關內容