为什么取消共享(CLONE_NEWUSER)会返回错误? (Linux)的

时间:2016-06-29 15:28:48

标签: c linux

这是我非常简单的代码:

 #define _GNU_SOURCE
 #include <sched.h>
 #include <errno.h>
 #include <stdio.h>

 int main(){
   int res= unshare(CLONE_NEWUSER);
   printf("res:%d\n",res);
   perror("error");
   return 0;
}

为什么代码总是失败(返回-1)?

我在Ubunto 13.04这是我的内核版本和其他细节:

Linux ubuntu 3.10.37-031037-generic #201404141035 SMP Mon Apr 14 14:55:40 UTC 2014 i686 i686 i686 GNU/Linux
  • errno返回Invalid argument

这是该计划的输出:

res:-1
error: Invalid argument

1 个答案:

答案 0 :(得分:1)

很可能是因为您的内核未配置为支持CONFIG_USER_NS

我估计运行命令:

unshare -U

也会在您的计算机上产生相同的错误。

您可以使用以下命令验证:

grep CONFIG_USER_NS /boot/config-$(uname -r)