statx 停止给予 EPERM 需要哪些能力

Which capabilities are needed for statx to stop giving EPERM

我有一个使用插件接口的 Qt 项目,它在我的系统上编译得很好。然而,当同一个项目在 docker 中编译时,它停止使用 Qt 5.10.1,给出消息 Error: Undefined interface。在 stracemoc 运行 进行一些 moc 之后,结果是找不到定义接口的头文件,因为 statx 对 include 文件路径的调用总是 returns EPERM。文档甚至没有提到这个错误是如何产生的。

docker run --privileged 解决了这个问题,但我想避免过多的权限,所以我只想设置必要的权限。

到目前为止,我尝试添加所有这些功能(甚至同时添加)但没有成功:

我是不是遗漏了什么?

更新

pull request 待处理。

2018-03-06 之前

截至目前,

statx 未包含在 Docker 使用的 default seccomp whitelist 中。

您可以使用 --security-opt seccomp=/path/to/seccomp/profile.json 指定不同的配置文件(大概是添加了此系统调用的配置文件)。


2018-03-06之后

moby/moby#36417 was merged to master 截至 2018 年 3 月 6 日。

它应该包含在以后的每晚构建中,并最终包含在 Docker 18.04 版本中。