我使用 挂载了一个远程目录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 就可以了!