我们想使用 sshfs 将服务器上的目录挂载到客户端上,但这些机器之间的某些用户和组 ID 不匹配。要求是正确映射用户所有权,并且客户端能够将文件组更改为本地和远程用户具有适当权限的组。
经过测试,该sshfs HOST:DIR MOUNTPOINT -o idmap=user
目录可以正常工作并挂载(但显然没有正确映射用户和组 ID),我尝试sshfs HOST:DIR MOUNTPOINT -i idmap=file,uidfile=uidfile,gidfile=gidfile
使用 uidfile 和 gidfile 的正确内容。
这样就不会安装任何东西,也不会在控制台或日志中显示任何错误消息!
当使用调试选项运行该命令时-d
,可以看到该命令以退出代码 1 退出,其执行的所有操作与使用该命令的idmap=user
操作完全相同。
我在几台机器上尝试过这个,但所有机器的结果都同样令人沮丧。
ssfhs 版本是 3.7.1
很难相信如此明显的错误是软件本身的错误而且显然没有记录下来——对此有没有什么了解,有什么解决方法?
答案1
经过一番调查,发现这种情况可能发生在以下情况:
- nomap 参数未添加或设置为 nomap=error
- gidfile 或 uidfile 中的一个或两个包含或缺少 sshfs 所需的某些内容,例如:
- 处于挂载状态的组未映射
- 用户的主组未映射
- 映射包含用户无法设置的组 ID
- 未知其他情况
在所有这些情况下,sshfs 都会静默退出,没有任何错误消息,也没有任何迹象表明问题的具体原因以及哪个文件是罪魁祸首。
因此,真正的错误在于,在所有这些错误情况下,sshfs 都不会在控制台或日志上显示任何消息,只是默默退出。