So mounten Sie einen NFSD4-Ordner direkt statt als Root

So mounten Sie einen NFSD4-Ordner direkt statt als Root

Ausführen von CentOS 8

server side: /etc/exports:
/home/share *(ro)

/home und /home/share sind Eigentum von root.root und verfügen über 755 Berechtigungen für Verzeichnisse und 644 Berechtigungen für Dateien.

 client side:
 mount -t nfs4 server:/ /sharefolder

Wie mounte ich /home/share direkt in /sharefolder, anstatt das Stammverzeichnis des FS zu mounten? Wenn ich „mount -t nfs4 server:/home/share /sharefolder“ versuche, erhalte ich die Fehlermeldung „Operation nicht zulässig“.

Antwort1

mount -t nfs4 server:/home/share /sharefoldersieht aus wie ein korrekter Befehl auf der Clientseite, und Ihr Setup funktioniert für mich, da ich es gerade getestet habe.

Natürlich müssen Sie den Befehl als Root eingeben oder sudoihn verwenden. Die Fehlermeldung „Vorgang nicht zulässig“ deutet darauf hin, dass Sie den Befehl möglicherweise versehentlich als Nicht-Root-Benutzer ausgeführt oder den Freigabenamen falsch eingegeben haben.

server:/home/shareBeachten Sie, dass der NFSv4-Server auch dann automatisch generieren muss, wenn Sie nur exportieren und mountenvirtuelle Exportefür /und /home. Dies sind jedoch nicht die echten /oder /home, sondern virtuelle schreibgeschützte Verzeichnisse, die nur die minimal notwendigen Unterverzeichnisse enthalten, um die tatsächlich exportierten Verzeichnisse zu erreichen. Sobald die Freigabe gemountet wurde, können Sie dies auf /proc/fs/nfsd/exportsdem NFS-Server sehen:

cat /proc/fs/nfsd/exports
# Version 1.1
# Path Client(Flags) # IPs
/home   *(ro,insecure,no_root_squash,sync,no_wdelay,no_subtree_check,v4root,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=390003:390004:390005:1)
/home/share     *(ro,root_squash,sync,wdelay,no_subtree_check,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=1)
/       *(ro,insecure,no_root_squash,sync,no_wdelay,no_subtree_check,v4root,fsid=0,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=390003:390004:390005:1)

Antwort2

Nach einigen Tests konnte ich Ihr Problem reproduzieren und es stellte sich heraus, dass es sich um ein Firewall-Problem handelte. Bitte stellen Sie sicher, dass die Firewall deaktiviert ist und überprüfen Sie nfsanschließend, ob Ihre Freigabe funktioniert.

Angenommen, Sie verwenden firewalld:

sudo systemctl stop firewalld

Sobald Sie festgestellt haben, dass nfswie erwartet funktioniert, sollten Sie Ihre Firewall-Konfiguration ändern. nfsbasiert auf anderen Daemon-Prozessen. Damit also nfskorrekt funktioniert, müssen Sie nicht nur durchlassen nfs, sondern auch mountdundrpc-bind

sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --reload

Sie können auch eine Zone angeben, wenn Sie diese Dienste nur für eine bestimmte Zone zulassen möchten, indem Sie Folgendes hinzufügen:--zone=nfszone

Ich habe diese Lösung nicht gründlich getestet und Sie müssen möglicherweise einen zusätzlichen Port öffnen, damit alle Funktionen funktionieren (z. B. Dateisperre). Siehehttps://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/storage_administration_guide/s2-nfs-nfs-firewall-config

verwandte Informationen