Увімкніть простори імен користувачів у ядрі 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 sandboxing, які, очевидно, вимагають включення просторів імен користувачів у ядрі (наприклад, мої контейнери Chrome більше не працюють).


1
Дивіться також те саме питання: unix.stackexchange.com/q/303213/4319
imz - Іван Захарящев

Відповіді:


38

У Debian користувачі вкладаються, але за замовчуванням відключаються. Існує специфічний для 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

Можливо, є еквівалентний параметр параметра завантаження, я просто не знаю


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 . Якщо користувач, як корінь у власному просторі імен, може обманути ядро ​​в тому, щоб дозволити операцію на реальному хості, ескалація привілеїв. Звичайні простори імен, які не користуються користувачем, вимагають явного кореневого (так адміністратора) дозволу і тому виконайте те, що обрав адміністратор: це відомий ризик. Пізніший механізм був доданий у ядро ​​ванілі: 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.