次のコマンドを使用して、SSHFSを介してリモートファイルシステムをマウントしました。
$ sshfs -o uid=1000 -o gid=1000 [email protected]:/ "/home/chendy/my_mount"
Sublimeを使用してファイルを開いて保存しようとしたときを除いて、すべてがうまくいっているようです。
ファイルを見て名前を変更しますか?例:
...ファイルエクスプローラでファイルを表示し、ファイルエクスプローラを使用してファイル名を正常に変更できます。
権限/ユーザー/グループ?はい
...権限を確認すると、すべてが正しく行われているようです。
$ ls -l '/home/chendy/my_mount/home/kano/test.py'
-rwxrwxrwx 1 chendy chendy 927 Apr 15 16:24
VIMを使用してファイルを編集しますか?はい
...VIMでファイルを開いて保存することもできます。
Sublimeを使ってファイルを編集しますか?間違い
...しかし、ファイルエクスプローラを介してファイルをロードするか、コマンドラインを使用してSublime(Sublime Text 3 Build 3059)で開くと、次のようになります。
$ /opt/sublime_text/sublime_text '/home/chendy/my_mount/home/kano/test.py'
同じエラーが発生しました。
~/my_mount/home/kano/test.py を保存できません。エラー:名前の変更(/home/chendy/my_mount/home/kano/.subl979.tmp、/home/chendy/my_mount/home/kano/test.py)失敗:操作は許可されていません
どうなりますか?解決策はありますか?
答え1
多くの編集者と同様に、Sublimeは一時ファイルに保存し、その一時ファイルを所定の場所に移動します。これは、ストレージ処理中にシステムがクラッシュするのを防ぐために行われます。元のファイルまたは新しいバージョンがそのまま残るので、ファイルを失う危険はありません。
SSHFSは、(少なくともOpenSSHによって実装されているように)ファイルの名前変更を許可せずにターゲットを自動的に上書きするSFTPの上に構築されます。 (この点はSSHFS FAQ.)
名前の変更と上書きを許可しますが、操作を非原子的にするようにSSHFSに指示することで、この制限を解決できます。したがって、古いファイルは短期間削除されますが、新しいファイルはまだ一時的な名前を持ちます。これは一部のユースケースでは問題になりますが、ファイルを編集するときは問題になりません。
コマンドライン-o workaround=rename
にオプションを追加します。sshfs
答え2
短い答えは、設定で次のように設定します。
"atomic_save": false
サポートされていないSSHF(SFTP)の名前変更を防ぎます。