docker - 如何在docker容器中允许ptrace

标签 docker apparmor

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

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

但是使用 fusionr 或 lsof 不起作用并且不返回任何内容。

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

最佳答案

看来此问题的修复 ( https://github.com/docker/docker/pull/15161 ) 已于 2015 年 7 月 30 日合并到 master,并包含在 Docker v1.8.0 及更高版本中。对于最新版本的 Docker 和包含的 AppArmor 配置文件来说,这应该不再是问题。

关于docker - 如何在docker容器中允许ptrace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30670753/

相关文章:

docker - 用卷保存docker日志文件会导致权限被拒绝

mysql 无法启动 Ubuntu 16.04.2 x64

php - 当 PHP 需要 shell 时使用不同于/bin/sh 的路径

Mysql 服务器未在从 AMI 创建的 EC2 实例上运行

linux - AppArmor 如何处理 "Environment Scrubbing"?

docker - 在 Visual Studio Code devcontainer 上重建 : keep VSC plugins?

azure - Pyspark Azure Blob 存储 - 未找到类 org.apache.hadoop.fs.azure.NativeAzureFileSystem

php - 在Docker中自动构建最新的PHP补丁版本?

docker - webpack 和 React jsx - 热加载不适用于 docker 容器

R 和 getpwuid()