Linuxカーネルはビルド時に user_namespaces で構成されている必要がありますが、それらの使用は起動後に制限され、明示的に有効にする必要があります。どのsysctlを使用すればよいですか?
(これがオンになっている場合、これはunshare --user --map-root-user --mount-proc --pid --fork
のような分離コマンドを実行し、rootになることなく chroot
を実行することを許可します -Linuxの待望の機能です。)
Debian(そしておそらくはUbuntuも)は、user_namespacesのそのような制限付きのカーネルを出荷することが知られており、それを有効にする方法があった/ありました:
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
を使用します)。