SSHFS semble fonctionner, mais Sublime + SSHFS ne fonctionne pas?

9

J'utilise la commande, pour monter mon système de fichiers distant en utilisant SSHFS:

$ sshfs -o uid=1000 -o gid=1000 [email protected]:/ "/home/chendy/my_mount"

Tout semble être heureux, sauf si j'essaye d'ouvrir et d'enregistrer un fichier avec Sublime ...

Afficher et renommer des fichiers? OUI:

... Je peux afficher mes fichiers dans l'explorateur de fichiers et je peux renommer des fichiers avec succès à l'aide de l'explorateur de fichiers.

Autorisations / Utilisateurs / Groupes? OUI

... Lors de la vérification des autorisations, tout semble en ordre:

$ ls -l '/home/chendy/my_mount/home/kano/test.py'
-rwxrwxrwx 1 chendy chendy 927 Apr 15 16:24

Modifier le fichier avec VIM? OUI

... Je peux également ouvrir le fichier avec VIM et l'enregistrer.

Modifier le fichier avec Sublime? ERREUR

... Mais lorsque j'ouvre le fichier dans Sublime (Sublime Text 3 Build 3059) en le chargeant via l'explorateur de fichiers ou en utilisant la ligne de commande:

 $ /opt/sublime_text/sublime_text '/home/chendy/my_mount/home/kano/test.py'

J'ai la même erreur:

Impossible d'enregistrer ~ / my_mount / home / kano / test.py Erreur: renommage (/home/chendy/my_mount/home/kano/.subl979.tmp, /home/chendy/my_mount/home/kano/test.py) a échoué : Opération non autorisée

Que se passe-t-il? Existe-t-il un moyen de résoudre?

Chendy
la source
1
essayez d'utiliser touch /home/chendy/my_mount/home/kano/.subl979.tmp.
Braiam

Réponses:

7

Comme de nombreux éditeurs, Sublime enregistre dans un fichier temporaire, puis déplace ce fichier temporaire en place. C'est fait de cette façon en cas de plantage du système pendant la sauvegarde: il est garanti que le fichier d'origine ou la nouvelle version sera présente, vous ne risquez pas de perdre le fichier.

SSHFS est construit au-dessus de SFTP, qui (au moins tel qu'implémenté par OpenSSH) ne permet pas de renommer un fichier et d'écraser atomiquement la cible. (Ceci est mentionné dans la FAQ SSHFS .)

Vous pouvez contourner cette limitation en disant à SSHFS d'autoriser le changement de nom et de remplacement, mais en rendant l'opération non atomique (il y a donc un très petit laps de temps pendant lequel l'ancien fichier est supprimé mais le nouveau fichier a toujours son nom temporaire). C'est un problème pour certains cas d'utilisation, mais pas lors de la simple modification d'un fichier.

Ajoutez l'option -o workaround=renameà votre sshfsligne de commande.

Gilles 'SO- arrête d'être méchant'
la source
1

Réponse courte, définissez ce paramètre dans votre configuration:

"atomic_save": false

Cela évitera de renommer via sshfs (SFTP), qui n'est pas pris en charge.

Wainer Chiari
la source