gedit + sshfs 无法保存(vi 可以保存!)

gedit + sshfs 无法保存(vi 可以保存!)

我使用 挂载了一个远程目录sshfs,但无法使用 保存文件gedit,而使用 保存同一个文件却可以vi。将权限更改为o-r (640)允许gedit保存文件 OK。有没有办法更改sshfs连接以使其gedit工作而不chmod损坏每个文件?

(我使用 -o uid= id -u-o gid= id -g,这样远程文件似乎属于我)

$ touch test.txt 
[!] test.txt appears

$ vi test.txt 
[!] :wq -> saves just FINE

$ gedit test.txt 
[!] opens fine, but upon save shows "You do not have the 
[!] permissions necessary to save the file" error - 
[!] CAN'T SAVE

$ vi test.txt 
[!] edit, :wq -> again saves just FINE!

$ ls -l test.txt
-rw-r--r-- ..... test.txt

[!] Now the tricky part:

$ chmod o-r test.txt
-rw-r----- ..... test.txt  <-- removed 'read' perm. from 'others'
$ gedit test.txt 
# WORKS! Saves just fine!

为什么删除其他人的读取权限会允许 gedit 保存?(而 vi 和其余的没有这个问题?)

有没有办法更改 sshfs 连接字符串,以允许我直接在服务器上编辑所有文件,而无需对它们进行 chmod ?

答案1

-o workaround=rename解决了我的问题

答案2

gedit 2.30.4/Ubuntu 11.04 上的解决方法似乎是启用在“首选项”中选中“创建备份副本...”,而不是禁用它。至少对我来说,这无需修改任何权限即可工作。

这也适用于 Debian sid 和 gedit 3.4.2

答案3

-o allow_other可能会为你做些什么......似乎有人在这里遇到了类似的问题:http://ubuntuforums.org/showthread.php?t=873199

答案4

sshfs -o allow_other,default_permissions -o IdentityFile=/path/to/ssh_key  REMOTE_USERNAME@REMOTE_HOST:/remote/dir/path/ test_mnt/

添加 default_permissions 就可以了!

相关内容