9

经过一番阅读,我发现 Linux 用户命名空间一般在 Linux 版本 >= 3.8 中都支持。但是,有可能在给定的操作系统上禁用了用户命名空间,从而使内核版本的检查变得不可靠。是否有一种可靠的方法来检查我正在使用的当前操作系统是否支持用户命名空间并可以使用它?

4

3 回答 3

6

您可以在两个地方检查您的内核是否支持用户命名空间:

  1. /boot/config-*. (找出您实际使用的是哪一个uname -a
  2. /proc/config.gz.

在这两个文件中寻找CONFIG_USER_NS. 如果它显示CONFIG_USER_NS=y你是金色的。如果没有,那么您将要编译一个新内核。

于 2016-09-27T10:18:05.587 回答
5

您可以检查您当前进程的/proc/[pid]/ns/目录是否有一个名为user

ls /proc/self/ns
于 2017-09-27T14:37:24.613 回答
2

如果您正在运行 bash (您可以通过运行检查echo $0,预期结果是-bash)。然后你可以运行以下一个班轮:

if [[ `sudo cat /boot/config-$(uname -a | awk '{print $3}') |grep '^CONFIG_USER_NS'` == "CONFIG_USER_NS=y" ]]; then echo "You have support for User Namespaces"; else echo "Sorry, you don't have support for User Namespaces"; fi
于 2016-10-20T12:56:37.873 回答