我使用 SSHFS 挂载了一个远程服务器,除了所有者/组信息之外,其他一切都按预期运行。无论我检查哪个文件的所有者/组,结果总是root:root
。
我正在像这样安装遥控器(在我的 fstab 中):
[email protected]:/var/www/clients/client1/ /mnt/ftp_remote fuse.sshfs _netdev,user,idmap=user,transform_symlinks,identityfile=/root/.ssh/id_rsa,allow_other,default_permissions,uid=0,gid=0 0 0
这是为什么?如何让 SSHFS 显示正确的文件所有者/组?
答案1
你不能。这是 SSHFS/Fuse 的限制:默认情况下,所有内容都映射到你用于连接 SSH 的用户的权限。
不过,您似乎可以使用文件稍微解决这个问题,请参阅手册页中的idmap
选项-o idmap
、-o uidfile
和。-o gidfile
-o nomap
答案2
这是一篇 4 年前的帖子,但是为了节省别人的时间,我会分享它。这个结果是正确的:你以根用户,使用其凭证,因此所有操作都将以 root 身份执行。这与使用名为 foo 的用户登录并使用该用户创建文件相同,所有创建的文件都将拥有 foo 所有权,并且 foo 用户限制也是如此(例如,只有当此用户获得许可时才会创建)。
如果您确实想要拥有不同的权限,则需要与目标用户一起执行操作。这是建议:
**client1**@188.yyy.193.xxx:/var/www/clients/client1/ /mnt/ftp_remote fuse.sshfs _netdev,user,idmap=user,transform_symlinks,identityfile=/root/.ssh/**client1_**id_rsa,allow_other,default_permissions 0 0
必须有客户端1用户名,并具备登录能力。