Wie kann ich die Bereitstellung von SSHFS (sauber) aufheben, wenn sie auf einem NFS-Bereitstellungspunkt bereitgestellt werden?


15

Mein Mitarbeiter hat einen Desktop-Computer, /homeder auf unserem Dateiserver freigegeben ist. Ich habe ein Perl-Skript zum sshfsMounten eines bestimmten Verzeichnisses auf einem anderen SSH-Host entwickelt, das auf meinem Laptop einwandfrei funktioniert.

Auf seinem Computer kann das Skript sshfsdie 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 /homeauf NFS läuft. In seinem /tmpfunktioniert es einwandfrei.

Nach dem Mounten ist während des Skriptvorgangs alles in Ordnung. Aber wenn das Töten sshfsProzess wird aufgelistet , wie <defunc>durch , psbis der übergeordneten Prozess (die Perl - Skript) beendet. Wenn Sie einen Raw- sshfsBefehl auf der Shell ausführen, tritt das Problem weiterhin auf.

Eine ls -dlAusgabe 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, mountaber 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?

Antworten:


38

Sie sollten in der Lage sein, die Bereitstellung der sshfs-Freigabe aufzuheben, indem Sie Folgendes ausführen:

 fusermount -u /path/to/sshfs/share

Ich habe es versucht, aber die Erlaubnis wurde verweigert . Natürlich umountmuss ein gewöhnlicher Benutzer fehlschlagen, wenn er als Nicht-Root-Benutzer ausgeführt wird.
Daniel Böhmer

Der Grund, warum Sie die Bereitstellung nicht aufheben können (mit einer beliebigen Methode), ist höchstwahrscheinlich, dass sein Ausgangsverzeichnis von NFS bereitgestellt wird, wo es mit der root_squashOption exportiert wird . Somit hat root keine Autorität in seinem Heimatverzeichnis. Sie können ausschalten, root_squashaber es ist wahrscheinlich sicherer, nur woanders zu montieren.
JFlo

2
Ich vergesse jedes Mal, dass umountoder fusermount -ufunktioniert nicht, wenn das Verzeichnis irgendwo verwendet wird. Also cdaus dem Verzeichnis vor der Verwendung fusermount -uoder Verwendunglsof /my/local/mountpoint
eli

16

Beenden Sie den Vorgang einfach mit pkill, um den gemounteten Ordnerpfad zu entfernen.

 pkill -kill -f "sshfs" && umount /path/to/sshfs/share

Manchmal muss ich "sudo umount -f" oder "sudo umount -l" anstelle von umount machen.
Fchen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.