statx需要哪些功能才能停止提供EPERM

问题描述 投票:3回答:1

我有一个Qt项目,它使用一个插件接口,可以很好地编译我的系统。但是,当在docker中编译同一个项目时,它停止使用Qt 5.10.1,给出messageError: Undefined interface。经过一些straceing moc运行之后,结果发现找不到定义接口的头文件,因为对include的文件路径的statx调用总是返回EPERM。文档甚至没有提到如何生成此错误。

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

到目前为止,我试图添加所有这些功能(即使在同一时间)但没有成功:

  • CAP_DAC_OVERRIDE
  • CAP_DAC_READ_SEARCH
  • CAP_FOWNER
  • CAP_SETFCAP

我在这里错过了什么吗?

UPDATE

一个pull request正在等待。

linux docker linux-capabilities
1个回答
5
投票

Before 2018-03-06

statx不包括在Docker目前使用的default seccomp whitelist中。

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


After 2018-03-06

moby/moby#36417是2018年3月6日的merged to master

它应该包含在未来的夜间构建中,并最终在Docker 18.04版本中。

© www.soinside.com 2019 - 2024. All rights reserved.