Weiß jemand, wie man einen Remote-SFTP-Pfad über SSHFS bereitstellt, damit Sie mit Symlinks arbeiten können? Wenn ich das mache, verweisen alle von mir erstellten Symlinks auf die falschen Dateien (nicht die, mit denen ich verlinkt bin.) Alle Symlinks, die mich interessieren, sind relativ (nicht absolut), sodass sie genauso angezeigt werden, wie sie es auf dem Remotecomputer tun würden ideal sein.
Wenn ich sshfs mit den Standard-Mount-Optionen verwende, kann ich keinen Symlink zu einer anderen Datei im aktuellen Verzeichnis erstellen:
$ cd /mnt/path/to/sshfs/mount
$ ln -s ./test ./test2
$ ls test2
lrwxrwxrwx 1 root webusers 11 Jul 3 09:11 test2 -> /test
Was offensichtlich falsch ist, da sich das Linkziel im aktuellen Verzeichnis befindet ( ./test
), aber hier können Sie sehen, dass sshfs einen /test
falschen Link erstellt - das Linkziel /mnt/path/to/sshfs/mount/test
nicht /test
.
Durch Hinzufügen der transform_symlinks
Option beim Mounten des sshfs-Dateisystems erhalte ich stattdessen einen relativen Link mit demselben Befehl, der jedoch immer noch auf die falsche Stelle verweist:
$ cd /mnt/path/to/sshfs/mount
$ ln -s ./test ./test2
$ ls test2
lrwxrwxrwx 1 root webusers 11 Jul 3 09:13 test2 -> ../../../test
Hier habe ich versucht, auf ./test
das aktuelle Verzeichnis zu verlinken , aber stattdessen habe ich einen Link zu ../../../test
drei Ebenen höher!
Das Verbinden mit dem Kommandozeilen-SFTP-Client sftp
anstatt mit sshfs zu mounten funktioniert jedoch:
sftp> open ...
sftp> symlink test test2
...
$ cd /mnt/path/to/sshfs/mount
$ ls test2
lrwxrwxrwx 1 root webusers 11 Jul 3 09:13 test2 -> test
Dies sagt mir, dass der Remote-SFTP-Server einwandfrei funktioniert (da ich Symlinks mit einem dedizierten SFTP-Client erstellen kann), aber aus irgendeinem Grund kann ich über sshfs keine funktionierenden Symlinks erstellen.
Seltsamerweise funktionieren die Symlinks gut, wenn ich sshfs verwende, um einen Pfad auf einem SSH-Server bereitzustellen, der Shell-Zugriff bietet (im Gegensatz zu einem SFTP-Server) - ich kann sie korrekt erstellen. Es scheint nur problematisch zu sein, wenn eine Verbindung zu einem Nur-SFTP-Server besteht.
Was mache ich falsch? Gibt es eine spezielle Option, die ich an sshfs übergeben muss, wenn ich eine Verbindung zu einem SFTP-Server herstelle, damit die Symlinks funktionieren?
ls -l
Ihrer Testsymlinks angezeigt?sftp
in Kleinbuchstaben sage, meine ich die Befehlszeilen-SFTP-Schnittstelle, dh/usr/bin/sftp
. Mein letztes Beispiel in diesem Beitrag ist, wenn ich den Symlink mit diesem SFTP-Client erstelle, wie Sie es wünschen.transform_symlinks
Option tun, was Sie über ein SSH- Mount mit dertransform_symlinks
Option tun und was Sie mit einem SFTP-Client tun. Symlinks funktionieren normalerweise über SSHFS, daher lautet die Antwort auf Ihren ersten Satz "nichts" - entweder ist ein Fehler aufgetreten oder Sie geben nicht die richtigen Befehle ein, aber Ihre Berichterstellung ist zu unklar, um zu wissen, was falsch ist.Antworten:
Verwenden Sie die folgende Option , um entfernte absolute (beginnend mit
/
) Symlinks so zu transformieren , dass sie relativ zumsshfs
Einhängepunkt sindfollow_symlinks
:Die
transform_symlinks
Option tut nichts für mich, siehe dieses Problem .quelle
Ich habe das von Ihnen beschriebene Verhalten bereits gesehen, aber wenn ich es jetzt teste, kann ich problemlos Symlinks in einem von sshfs gemounteten Verzeichnis erstellen:
Ich habe sshd auf der Fernbedienung vor ungefähr 4 Monaten aktualisiert . Die alte Version wäre mehrere Jahre alt gewesen. Vielleicht hat das Upgrade das Problem behoben. Dies könnte einen Hinweis darauf geben, was ich gerade verwende:
Ich habe nichts getan, um sshfs zu ändern, außer was Ubuntu automatisch macht.
HTH.
quelle