„ls“ zeigt keine Dateien im gemounteten NFS-Ordner an, aber „cd“ funktioniert

„ls“ zeigt keine Dateien im gemounteten NFS-Ordner an, aber „cd“ funktioniert

Auf einem Linux-Client wurde eine NFS-Freigabe eingebunden /vol/mynfs. Es werden keine Ordner angezeigt lsund die Bash-Vervollständigung funktioniert /vol/mynfsauch nicht. Nach dem Wechsel in ein Unterverzeichnis sind aber alle Dateien sichtbar.

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

Warum sind die Dateien zunächst unsichtbar und wie kann ich sie immer sichtbar machen?

Antwort1

Ich gehe davon aus, dass Ihre NFS-Freigabe automatisch gemountet ist, oder?

Vor dem tatsächlichen Mounten der Freigabe /vol/mynfshandelt es sich lediglich um ein leeres Verzeichnis, daher lswird es auch so angezeigt. Durch das Verschieben in dieses Verzeichnis wird das Mounten erzwungen, sodass danach lsder Inhalt des jetzt gemounteten Verzeichnisses angezeigt wird.

Die Dateien können aufgelistet werden, solange die Freigabe tatsächlich gemountet ist. Wenn die Freigabe anschließend unmountet wird (manuell oder automatisch nach einem Inaktivitätstimeout), erscheint das Verzeichnis wieder leer.

Etwas wie (cd /vol/mynfs; ls)erzwingt die Bereitstellung und führt die aus ls, wenn Sie dies aus irgendeinem Grund tun müssen.

Antwort2

Stellen Sie sicher, dass Sie Leseberechtigung für dieses Verzeichnis haben.
Sehen Sie ls -la /vol/mynfs/.sich die Ausgabe an. .Hat Ihr Benutzer oder Ihre Gruppe Lesezugriff?
Sie können lernen, die Berechtigungen zu lesen.Hier

Wenn Sie Ausführungszugriff, aber keinen Lesezugriff haben, können Sie den Ordner und seine Unterverzeichnisse öffnen, aber nicht auflisten (genau Ihr Problem).Quelle
Sie können dieses Problem beheben, indem Sie Folgendes ausführen (möglicherweise müssen Sie als Root angemeldet sein, sudowenn Ihnen der Ordner nicht gehört):

chmod u+r /vol/mynfs/.

Dadurch werden dem Benutzer Leseberechtigungen für diesen Ordner hinzugefügt.

Das Extra /.in den Befehlen könnte erforderlich sein, wenn es sich um einen symbolischen Link handelt, ich weiß es nicht.

Antwort3

Ich habe diesen Fall auch ausprobiert.

Lösung 1

In meinem Fall verwende ich den QNAP NAS-Server.

Der Name meines NAS-Freigabeordners lautet „mynfs“.

ssh zum QNAP NAS-Server und chmod 750 mynfs

chmod 750 /share/NFSv=4/mynfs

Nach der Chmod-Einstellung auf der NFS-Serverseite kann mein NFS auf der Clientseite jetzt alle Dateien und Verzeichnisse anzeigen.

Lösung 2

Diese Lösung besteht darin, /etc/fstab auf der Clientseite zu ändern. Im folgenden Beispiel ist 10.0.0.254 mein QNAP NAS-Server.

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

ändern in

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

Nach der Änderung von /etc/fstab und dem erneuten Mounten von /vol/mynfs wurden die Dateien in /vol/mynfs angezeigt.

verwandte Informationen