Synology-通过 sshfs 使用用户/组映射挂载目录

Synology-通过 sshfs 使用用户/组映射挂载目录

我一直在尝试sshfs通过终端访问 Synology 盒子上的目录并将其挂载。为此,我使用了适用于 macOS 的 FUSE项目。设置如下:

  • /volume1/justnfs要挂载的Synology 盒上的目录归user1:users用户 ID 1026 和组 ID 100 所有,并且仅包含该用户拥有的目录/文件。
  • 在我的笔记本电脑上,user1挂载该目录的用户的用户 ID 为 501,组 ID 为 20(组名staff

现在,如果我这么做

sshfs -o sshfs_debug syno:/justnfs ./storage

目录已挂载,但所有文件的用户 ID/组 ID 均未重新映射(如预期)。为了解决这个问题,我创建了两个具有所需映射的文件,即users.txtwithuser1:1026groups.txtwith staff:100。然后命令

sshfs -o sshfs_debug -o idmap=file -o uidfile=users.txt -o gidfile=groups.txt syno:/justnfs ./storage

还挂载了远程目录,但是,如果我随后切换到storage并执行ls,则输出完全为空并dmesg显示

osxfuse: fuse_vnop_readdir failed (err=1)

奇怪的是,当我尝试访问cat路径已知的文件(即直接访问)时,命令成功并显示文件内容。就好像由于某种原因不允许只显示目录列表一样。

有趣的是,如果我明确提供 uid/gid

sshfs -o sshfs_debug -o uid=501 -o gid=20 syno:/justnfs ./storage

然后ls再次工作。

最后两个命令的行为不同和/或无法列出目录内容的原因可能是什么?

相关内容