环顾四周,我发现我可以使用
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?
答案 0 :(得分:0)
看起来这个(https://github.com/docker/docker/pull/15161)的修复程序在2015-07-30被合并为master,并且包含在Docker v1.8.0及更高版本中。这应该不再是最近版本的Docker和附带的AppArmor配置文件的问题。