我使用sshfs将远程文件夹从另一台服务器挂载到本地服务器。使用以下命令挂载远程文件夹没有问题:
sshfs -o allow_other someServerFromSSHConfig:/home/data/somefolder/ /some/local/folder
Run Code Online (Sandbox Code Playgroud)
问题是我无法使用 chown 更改文件的所有者(无论 root 权限如何)我总是得到:
chown: changing ownership of ‘/somefolder/file.img’: Permission denied
Run Code Online (Sandbox Code Playgroud)
访问该文件夹的用户是 fuse 组的成员。即使我在 sshfs 中添加额外的挂载选项来设置所有者,因为userx:groupx我无法使用userx和使用更改权限chown -R userx:groupx [...]
我希望能够为已安装文件夹中的文件设置用户权限,但事实并非如此。
正如您在评论中所说,您以 data@remote_server 身份连接这意味着您根本无法连接chown。sshfs 只是一个粗略的抽象,你只被允许执行你可以在内部执行的操作。sftp data@remote_server 所有抽象都是有漏洞的,这个也是。
只有 root@remote_server 可以chown在 remote_server 上。您在 local_server 上是什么用户并不重要。
注意,对sftp root@remote_server你通常需要PermitRoot yes或PermitRoot without-password在远程的人来说,/etc/ssh/sshd_config这是有风险的。
附注。默认情况下,由于PermitRoot no选项,sshd 根本不允许 root 登录。所以通常你不能 sshfs root@remote_host。如果您想通过 root 测试 chown 行为,我建议将PermitRoot without-password. 这意味着 root 可以在将公钥添加到/root/.ssh/authorized_keys. 有了这个设置,root 不能仅仅通过提供 root 密码登录,所以它有点安全。
PS2。如果您需要更高的安全性,您可以仅为此文件共享设置另一个 sshd 实例;有ForceCommand internal-sftp与chroot它会大大增加根的安全性,但它需要使用新的TCP端口和一个新的防火墙例外。
| 归档时间: |
|
| 查看次数: |
17062 次 |
| 最近记录: |