4

环顾四周,我发现我可以使用

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(以 root 身份),正如预期的那样,我可以看到 root 拥有的进程。但是我有几个在 uucp 下运行的进程,这导致权限被拒绝。

所以我转向 uucp 下的 bash。

sudo -u uucp /bin/bash

但是使用 fuser 或 lsof 不起作用并且什么也不返回。

那么,当我在 docker dontainer 中作为所述用户处于活动状态时,如何为任何用户激活 ptrace?

4

1 回答 1

0

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

于 2015-12-18T08:46:16.573 回答