如何检查当前操作系统内核是否支持Linux用户命名空间

时间:2016-08-29 20:53:42

标签: linux containers sandbox linux-namespaces

在做了一些阅读之后,我发现Linux版本> = 3.8通常支持Linux用户命名空间。但是,在给定的OS上禁用用户命名空间的可能性,使得对内核版本的检查不可靠。是否有一种强大的方法来检查当前使用的操作系统是否支持用户命名空间并且可以使用它?

3 个答案:

答案 0 :(得分:4)

您可以检查两个位置以查看您的内核是否支持用户命名空间:

  1. /boot/config-*。 (找出你实际使用的uname -a
  2. /proc/config.gz
  3. 在两个文件中查找CONFIG_USER_NS。如果它显示为CONFIG_USER_NS=y你就是金色的。如果没有,那么,你即将编译一个新内核。

答案 1 :(得分:2)

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

ls /proc/self/ns

答案 2 :(得分:1)

Provided you are running bash (you can check by running echo $0, expected result is -bash). Then you can run the following one liner:

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