почему «unshare» завершается неудачно с «операция не разрешена» в контейнере Docker? - PullRequest
0 голосов
/ 29 июня 2019

Я хочу запустить unshare -r -n <prog> внутри контейнера. Запуск «unshare -h» работает (поэтому он доступен), но «unshare ls» дает «операция не разрешена» (независимо от того, используются ли опции «-r -n»).

Полная история: Контейнер запускает веб-сервер (используя Flask), который запускает оболочку подпроцесса. Эта оболочка пытается изолировать исполняемый файл timeout 10 unshare -r -n sandboxed_app arg1 arg2

В связанном вопросе ( Docker: как избежать операции, не разрешенной в Docker Container? ), предлагается ответить на вопрос о выборе флага --privileged, но он здесь не применим, поскольку я хочу ограничить пользователя привилегии в этом контейнере (т.е. запуск с --user nobody)

$ docker run -it  python:3.6-stretch /bin/bash
root@df7e28742ac5:/# unshare -h

Usage:
 unshare [options] <program> [<argument>...]

<snip>

root@df7e28742ac5:/# unshare ls
unshare: unshare failed: Operation not permitted
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...