Включить пользовательские пространства имен в ядре Debian

28

Я пытаюсь понять, как включить возможность использования пространств имен пользователя в моем ядре (я думаю, CAP_SYS_USER_NS). Я использую Debian Stretch, ядро ​​4.6.0-1-amd64.

Я предполагаю, что есть способ включить пространства имен пользователя и перекомпилировать ядро. После нескольких часов поиска я могу найти сообщение об этом в Ubuntu ( https://blog.tutum.co/2013/12/14/enabling-the-user-namespace-in-ubuntu-13-10-saucy/ ) но не Debian (возможно, проблема в том, что я на неправильном пути, поэтому мои поиски не соответствуют требованиям).

Моя конечная игра - включить их, чтобы не отставать от Docker и песочницы Google, которые, очевидно, требуют, чтобы в ядре были включены пространства имен пользователей (например, мои контейнеры Chrome больше не работают).

Senrabdet
источник
1
Смотрите также тот же вопрос: unix.stackexchange.com/q/303213/4319
imz - Иван Захарящев

Ответы:

38

В Debian userns встроен, но по умолчанию отключен. В ядре есть специфичный для Debian патч, который добавляет эту ручку sysctl: kernel.unprivileged_userns_clone

Таким образом, вы должны добавить новую запись /etc/sysctl.dи установить его на 1

Вручную это будет: echo 1 > /proc/sys/kernel/unprivileged_userns_clone(только для включения до перезагрузки)

для постоянного решения:

echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/00-local-userns.conf
service procps restart

Возможно, есть эквивалентный параметр загрузки, я просто не знаю,

AB
источник
1
Это все еще работает на Stretch, ядро 4.9.0-1-amd64 #1 SMP Debian 4.9.6-3 (2017-01-28) x86_64 GNU/Linux.
Рейд
1
Есть ли причина, по которой он отключен по умолчанию в Debian?
Мелрой
2
Исторически безопасность пространства имен пользователей была неопределенной. Например: lwn.net/Articles/673597 . Если пользователь с правами root в своем собственном пространстве имен может заставить ядро ​​разрешить выполнение операции на реальном хосте, это может привести к повышению привилегий. Обычные непользовательские пространства имен требуют явного разрешения root (то есть администратора) и запускают то, что выбрал администратор: это известный риск. Более поздний механизм был добавлен в ванильное ядро: user.max_user_namespaces. При значении 0 пространства имен пользователей отключены. Патч Debian (на самом деле из Ubuntu) все еще в разработке, хотя, возможно, и устарел. Может быть , по причинам совместимости
AB
1
Ядро 4.18.3 еще не выпущено в Debian, поэтому ваше ядро ​​не является ядром тестирования Debian. Вы можете полностью игнорировать этот параметр (пока не установите реальное ядро ​​из Debian). Также посмотрите на мой предыдущий комментарий о user.max_user_namespaces
AB
3
Или просто: sudo sysctl -w kernel.unprivileged_userns_clone=1.
Skippy le Grand Gourou