Как разрешить 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.