如何在docker容器中允许ptrace



看了一下,我发现我可以使用

docker run --privileged --rm -i -t app /bin/bash

允许访问任何用户拥有的所有进程上的所有ptrace函数。不幸的是,我不想让别人拥有这种能力。所以我看了看apparmor,发现我可以使用

ptrace peer=@{profile_name} 

在我的aparmor配置文件中,然后在运行应用程序时包含它。

docker run --security-opt="apparmor:myprofile" --rm -i -t app /bin/bash

一切加载正常。然后我使用fuser(作为根用户),正如预期的那样,我可以看到根用户拥有的进程。但是我有几个进程在uucp下运行,这给了权限拒绝。

所以我移动到bash下的uucp

sudo -u uucp /bin/bash

但是使用fuser或lsof不起作用,并且没有返回任何结果。

那么,当我在docker容器内作为上述用户活动时,我如何激活任何用户的ptrace ?

看起来这个修复(https://github.com/docker/docker/pull/15161)在2015-07-30被合并到master,并且包含在Docker v1.8.0及以上版本中。对于最新版本的Docker和包含的AppArmor配置文件,这应该不再是一个问题。

相关内容

  • 没有找到相关文章

最新更新