sshfs 选项 idmap=file 完全阻止挂载,且不显示错误消息

sshfs 选项 idmap=file 完全阻止挂载,且不显示错误消息

我们想使用 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 都不会在控制台或日志上显示任何消息,只是默默退出。

https://github.com/deadbeefsociety/sshfs/issues/6

相关内容