Mein Mitarbeiter hat einen Desktop-Computer, /home
der auf unserem Dateiserver freigegeben ist. Ich habe ein Perl-Skript zum sshfs
Mounten eines bestimmten Verzeichnisses auf einem anderen SSH-Host entwickelt, das auf meinem Laptop einwandfrei funktioniert.
Auf seinem Computer kann das Skript sshfs
die Bereitstellung am Ende nicht aufheben und den Mountpoint unrein lassen. Ich habe keine andere Möglichkeit gefunden, den Mountpoint wiederherzustellen, als neu zu starten. Nach einigen Tests stellte ich fest, dass der Unterschied zwischen unseren Setups darin besteht, dass er /home
auf NFS läuft. In seinem /tmp
funktioniert es einwandfrei.
Nach dem Mounten ist während des Skriptvorgangs alles in Ordnung. Aber wenn das Töten sshfs
Prozess wird aufgelistet , wie <defunc>
durch , ps
bis der übergeordneten Prozess (die Perl - Skript) beendet. Wenn Sie einen Raw- sshfs
Befehl auf der Shell ausführen, tritt das Problem weiterhin auf.
Eine ls -dl
Ausgabe für den Mountpoint sieht folgendermaßen aus (wie erinnert - ich habe keine echte Kopie der Shell-Ausgabe zur Hand):
? 1 ? ? 4096 Feb 9 15:37 file_archive/
(nur Fragezeichen für die meisten Informationen, zumindest alle Berechtigungsdetails)
Der sshfs-Mount wird weiterhin von aufgelistet, mount
aber ein Vorgang zum Aufheben der Bereitstellung schlägt fehl, und die Fehlerberechtigung wird verweigert, selbst wenn dies als ausgeführt wird root
.
Ich habe Google durchsucht, aber nur viele Vergleiche zwischen sshfs und NFS gefunden, um Netzwerkdateisysteme auszuführen. Wie kann ich ein sshfs-Mount / Unmount im NFS-Verzeichnis sicher durchführen?
umount
muss ein gewöhnlicher Benutzer fehlschlagen, wenn er als Nicht-Root-Benutzer ausgeführt wird.root_squash
Option exportiert wird . Somit hat root keine Autorität in seinem Heimatverzeichnis. Sie können ausschalten,root_squash
aber es ist wahrscheinlich sicherer, nur woanders zu montieren.umount
oderfusermount -u
funktioniert nicht, wenn das Verzeichnis irgendwo verwendet wird. Alsocd
aus dem Verzeichnis vor der Verwendungfusermount -u
oder Verwendunglsof /my/local/mountpoint
Beenden Sie den Vorgang einfach mit pkill, um den gemounteten Ordnerpfad zu entfernen.
quelle
Dieser Befehl funktioniert anscheinend unter OS X.
quelle