基于 Debian 的 Linux

基于 Debian 的 Linux

我的 Linux 内核必须配置为用户命名空间构建时,但它们的使用在启动后受到限制,并且必须明确启用。我应该使用哪个 sysctl?

(如果启用此功能,这将允许运行隔离命令,例如unshare --user --map-root-user --mount-proc --pid --fork,然后执行chroot无需成为 root——Linux 的一项备受期待的功能。)

答案1

基于 Debian 的 Linux

众所周知,Debian(因此也可能是 Ubuntu)在发布内核时对 user_namespaces 进行了这样的限制,并且启用它的方法是:

sysctl -w kernel.unprivileged_userns_clone=1

(来源:https://blog.mister-muffin.de/2015/10/25/unshare-without-superuser-privileges/.)

从内核 5.10 (Debian 11/bullseye) 开始,Debian默认启用非特权用户命名空间;如果您发现它们仍然被禁用,还请检查 sysctl user.max_user_namespaces(与 不同,它kernel.unprivileged_userns_clone不是特定于 Debian 的)。

ALT-Linux 特定

ALT有这样的限制内核映像标准定义, 也。与 Debian 不同,它被称为kernel.userns_restrict.

通常,它是 1(即“受限”):

$ cat /proc/sys/kernel/userns_restrict 
1

要启用此功能echo 0 > /proc/sys/kernel/userns_restrict(当然,或者sysctl如上所述使用)。

相关内容