我一直在尝试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.txt
withuser1:1026
和groups.txt
with 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
再次工作。
最后两个命令的行为不同和/或无法列出目录内容的原因可能是什么?