为什么我突然无法写入这个 sshfs 卷?

dot*_*ezz 5 linux ssh permissions sshfs

有一个远程服务器,我每天都通过 ssh 连接到它。我在服务器上编辑了很多文件,所以我sshfs经常这样做。

我用$ sshfs user@host:/var/www/html ~/sshfs/html. 这在过去几个月中运作良好,即使现在也应该有效。但是,我遇到了一些奇怪的不一致的访问问题。

案例 1 - Sublime Text:我完全无法使用我选择的编辑器(Sublime Text)保存任何内容。我不能另存为来创建一个新文件~/sshfs/html/。我可以打开文件,但不能保存。

尝试保存时,Sublime 在警告框中显示以下消息:

截屏

Unable to save ~/sshfs/html/foo
Error: rename(/home/ben/sshfs/html/.subl219.tmp, /home/ben/sshfs/html/foo) failed
errno: 1
Run Code Online (Sandbox Code Playgroud)

案例 2 - Kate:我尝试在 Kate 中打开东西,看看 Sublime 是否只是愚蠢。我仍然无法编辑现有文件,但我可以在 Kate 中创建新文件而不会出现问题

尝试保存编辑时,Kate 在警告框中给出以下消息:

截屏

The document could not be saved, as it was not possible to write to /home/ben/sshfs/html/foo.
Check that you have write access to this file or that enough disk space is available.
Run Code Online (Sandbox Code Playgroud)

案例 3 - Vim:这就是事情开始变得不那么有意义的地方。我尝试在我的本地机器上使用 Vim

$ vim ~/sshfs/html/foo
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,我在使用 Vim 时完全没有问题。它可以毫无问题地打开、编辑、保存和创建文件。我在使用 shell 命令时也没有问题,例如touch.

需要考虑的事项

  • 群组访问
    • 该组developers有权访问我要编辑的所有文件。
    • 我的本地用户是该组的成员developers
    • 我的远程用户(我通过 SSH 登录的帐户)是该组的成员developers
    • 该组developers存在于服务器和我的本地机器上,具有相同的 ID。
  • 其他事情
    • 我在几台服务器上有几个目录,我像这样使用。其他服务器上的其他目录都没有给我带来任何麻烦。
  • $ ls -l在挂载点内的本地主机上运行:

输出

drwxrwxr-x 1 root developers  4096 Sep  8 06:47 admin
drwxrwxr-x 1 root developers  4096 Jun  4  2013 agent_submit
-rwxrwxr-x 1 root developers  6605 Jun  4  2013 authorize.php
Run Code Online (Sandbox Code Playgroud)
  • $ ls -l通过 ssh shell 在远程主机上运行:

输出

drwxrwxr-x 10 root developers  4096 Sep  8 06:47 admin
drwxrwxr-x  2 root developers  4096 Jun  4  2013 agent_submit
-rwxrwxr-x  1 root developers  6605 Jun  4  2013 authorize.php
Run Code Online (Sandbox Code Playgroud)

小智 4

sshfs -o workaround=rename user@host:/var/www/html ~/sshfs/html
Run Code Online (Sandbox Code Playgroud)

资料来源:

  • 即使准确,从长远来看,仅发布命令和链接并不能回答问题或提供帮助。最好解释什么是错误的以及为什么提供的命令是解决方案,并解释所提供链接的任何相关部分。 (6认同)