Как включить в ядро ​​user_namespaces? (Для непривилегированных `unshare`.)

Мое ядро ​​Linux должно быть сконфигурировано с использованием пространств user_namespaces при их создании , но их использование ограничено после загрузки и должно быть явно включено. Какой sysctl я должен использовать?

(Если это было включено, это позволит запустить команду изоляции, например unshare --user --map-root-user --mount-proc --pid --fork , а затем выполнить chroot без root -a ожидаемая особенность Linux.)

Известно, что Debian (и, следовательно, вероятно, Ubuntu) отправляет ядро ​​с таким ограничением пространств user_namespaces, и там способ его включения был / is:

 sysctl -w kernel.unprivileged_userns_clone=1 

(Источник: https://blog.mister-muffin.de/2015/10/25/unshare-without-superuser-privileges/ .)

ALT имеет такое ограничение и в kernel-image-std-def . В отличие от Debian, он называется kernel.userns_restrict .

Обычно это 1 (т. Е. «Ограниченный»):

 $ cat /proc/sys/kernel/userns_restrict 1 

Чтобы включить это, echo 0 > /proc/sys/kernel/userns_restrict (или, конечно, используйте sysctl как указано выше).