Как разрешить ptrace в Docker-контейнере

Посмотрев вокруг, я обнаружил, что могу использовать

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, что дает разрешение запрещено.

Поэтому я перехожу на bash под UUCP.

sudo -u uucp /bin/bash

Но использование fuser или lsof не работает и ничего не возвращает.

Итак, как мне активировать ptrace для любого пользователя, когда я активен в качестве указанного пользователя в Docker Dontainer?

1 ответ

Решение

Похоже, что исправление для этого ( https://github.com/docker/docker/pull/15161) было объединено с master в 2015-07-30 и было включено в Docker v1.8.0 и выше. Это больше не должно быть проблемой для последних версий Docker и включенных профилей AppArmor.

Другие вопросы по тегам