sshfs interrompe i collegamenti simbolici dal server SFTP


16

Qualcuno sa come montare un percorso SFTP remoto tramite SSHFS in modo da poter lavorare con i collegamenti simbolici? Quando lo faccio, tutti i collegamenti simbolici che creo puntano a file errati (non quelli a cui mi sono collegato.) Tutti i collegamenti simbolici a cui sono interessato sono relativi (non assoluti), quindi visualizzarli esattamente come fanno sulla macchina remota essere l'ideale.

Usando sshfs con le opzioni di mount predefinite, non riesco a creare un link simbolico a un altro file nella directory corrente:

$ cd /mnt/path/to/sshfs/mount
$ ln -s ./test ./test2
$ ls test2
lrwxrwxrwx 1 root webusers   11 Jul  3 09:11 test2 -> /test

Il che è ovviamente errato, poiché la destinazione del collegamento si trova nella directory corrente ( ./test), ma qui puoi vedere che sshfs crea un collegamento a /testcui non è corretta - la destinazione del collegamento /mnt/path/to/sshfs/mount/testnon lo è /test.

Aggiungendo l' transform_symlinksopzione quando monto il filesystem sshfs, ottengo invece un link relativo con lo stesso comando, ma punta ancora nel posto sbagliato:

$ cd /mnt/path/to/sshfs/mount
$ ln -s ./test ./test2
$ ls test2
lrwxrwxrwx 1 root webusers   11 Jul  3 09:13 test2 -> ../../../test

Qui ho provato a collegarmi ./testnella directory corrente, ma invece ho ottenuto un link a ../../../testtre livelli!

La connessione con il client SFTP della riga di comando sftpinvece del montaggio con sshfs funziona comunque:

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

Quindi questo mi dice che il server SFTP remoto funziona bene (dal momento che posso creare collegamenti simbolici con un client SFTP dedicato), ma per qualche motivo non sono in grado di creare collegamenti simbolici funzionanti tramite sshfs.

Stranamente, quando uso sshfs per montare un percorso su un server SSH che fornisce accesso alla shell (al contrario di un server solo SFTP) i collegamenti simbolici funzionano bene - posso crearli correttamente. Sembra essere problematico solo quando è collegato a un server solo SFTP.

Che cosa sto facendo di sbagliato? C'è un'opzione speciale che devo passare a sshfs quando mi connetto a un server SFTP per far funzionare i collegamenti simbolici?


Non capisco la tua domanda: sshfs usa sempre SFTP. Cosa intendi con "via ssh invece di sftp"? Sembra che tu abbia problemi con un particolare server SFTP. Se si utilizza un client SFTP, cosa mostra quando si esegue ls -lsui collegamenti simbolici di prova?
Gilles 'SO- smetti di essere malvagio' il

Scusate, quando dico sftpin minuscolo intendo l'interfaccia SFTP della riga di comando, cioè /usr/bin/sftp. Il mio ultimo esempio nel post è quando realizzo il collegamento simbolico usando questo client SFTP, proprio come lei richiede.
Malvineous,

Non ho ancora idea di cosa intendi. Modifica il tuo post per chiarire cosa stai facendo localmente, cosa stai facendo su un mount sshfs senza l' transform_symlinksopzione, cosa stai facendo su un mount ssh con l' transform_symlinksopzione e cosa stai facendo con un client sftp. I collegamenti simbolici funzionano normalmente su SSHFS, quindi la risposta alla tua prima frase è "niente" - o hai riscontrato un bug o non stai digitando i comandi giusti, ma i tuoi rapporti non sono chiari per sapere cosa c'è che non va.
Gilles 'SO- smetti di essere malvagio' il

Ho cercato di chiarire ciò che chiedo nel miglior modo possibile, ma non sono del tutto sicuro di ciò che stai cercando, poiché la domanda mi sembra chiara. Se non è ancora chiaro, ti prego di dirmi in particolare quali parti non hanno senso e perché, e proverò a concentrarmi su quei bit. Spero che le tue domande abbiano ora una risposta.
Malvineous,

Risposte:


13

Per trasformare i /collegamenti simbolici assoluti remoti (a partire da ) in modo che siano relativi al sshfspunto di montaggio, utilizzare l' follow_symlinksopzione:

sshfs -o follow_symlinks ...

L' transform_symlinksopzione non fa nulla per me, vedi questo problema .


risposta corretta nel mio caso. Non ho mai visto prima i file / le cartelle con link simbolici, e ora lo vedo e posso seguirlo.
disconnessione il

1

Ho visto il comportamento che descrivi prima, ma testandolo ora posso creare collegamenti simbolici su una directory montata su sshfs:

$ touch T
$ ln -s T L
$ ls -l T L
lrwxrwxrwx 1 user user 1 Apr  9 16:10 L -> T
-rw-rw-r-- 1 user user 0 Apr  9 16:10 T

$ echo hello >> L
$ cat T
hello
$ pwd
/home/user/oak/tmp
$ mount | grep oak
user@oak: on /home/user/oak type fuse.sshfs (rw,nosuid,nodev,user=user)

Ho aggiornato sshd sul telecomando circa 4 mesi fa. La vecchia versione avrebbe avuto diversi anni. Forse l'aggiornamento ha risolto il problema. Questo potrebbe dare qualche indizio su cosa sto usando ora:

$ ssh oak 'ident $(which sshd)' | grep ssh
/usr/sbin/sshd:
 $NetBSD: sshd.c,v 1.13.4.1 2015/04/30 06:07:31 riz Exp $
 $NetBSD: sshpty.c,v 1.2.26.1 2015/04/30 06:07:31 riz Exp $
 $NetBSD: sshlogin.c,v 1.4.22.1 2015/04/30 06:07:31 riz Exp $

Non ho fatto nulla per cambiare sshfs, tranne ciò che Ubuntu fa automaticamente.
HTH.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.