![tux in egg in python][1] Hello, \{\{username\}\} Я DevOps и очень люблю Linux. Понятное дело, что с такой связкой я просто не мог не полюбить LinuX Containers (тем более, что BSD и Solaris давно радуют аналогичными возможностями своих пользователей). Естественно, бизнес тоже увидел привлекательную возможность и программы для управления контейнерами стали расти и множиться: [docker ][2], [rocket][3], [vagga][4], [lxc][5], [systemd-nspawn][6], etc… Docker стал стандартом де-факто в первую очередь благодаря системе создания и доставки контента. Но главный демон докера запускается от root, и, на мой взгляд, это минус этого проекта ([Пруф][7]). Rocket и vagga пошли другим путем, и путь этот носит название unprivileged containers. Вам больше не нужны root привилегии, чтобы запустить процесс в новых namespaces, и это открывает интересные перспективы для построения тестовых площадок и безопасного окружения. Но во всех этих проектах есть один фатальный недостаток: они все написаны с использованием c, go и rust, а я люблю python и не могу поучаствовать в их разработке. Согласитесь, довольно обидно пропускать все веселье. Так что под катом вас ждет библиотека для запуска процессов в новых [linux user namespaces][8]: [Читать дальше →][9]
[1]:
http://habrastorage.org/getpro/habr/post_images/1e9/487/009/1e948700995555f0c7512350c77ab485.jpg
[2]:
https://github.com/docker/docker
[3]:
https://github.com/coreos/rkt
[4]:
https://github.com/tailhook/vagga
[5]:
https://linuxcontainers.org
[6]:
https://wiki.archlinux.org/index.php/Systemd-nspawn
[7]:
https://fosterelli.co/privilege-escalation-via-docker.html
[8]:
http://man7.org/linux/man-pages/man7/user_namespaces.7.html
[9]:
http://habrahabr.ru/post/256647/#habracut