为什么LXC需要重启?

LXC文档说:

在创build第一个容器之前,您可能应该注销并重新login,或者重新启动计算机,以确保将用户放置在正确的cgroup中。

有人可以解释为什么这是需要运行的东西:

lxc-usernsexec -mb:0:100000:1 -- bash 

我在/etc/subgid/etc/subuid有适当的映射。 但是这个命令只是说在我重启之前拒绝了权限。 什么是正确的cgroups代表?

编辑

在安装LXC之前:

 jml@somehost:~$ cat /proc/self/cgroup 2:name=systemd:/user/1002.user/123.session 

安装LXC并重新启动后:

 jml@somehost:~$ cat /proc/self/cgroup 11:hugetlb:/user/1002.user/5.session 10:perf_event:/user/1002.user/5.session 9:blkio:/user/1002.user/5.session 8:freezer:/user/1002.user/5.session 7:devices:/user/1002.user/5.session 6:memory:/user/1002.user/5.session 5:cpuacct:/user/1002.user/5.session 4:cpu:/user/1002.user/5.session 3:cpuset:/user/1002.user/5.session 2:name=systemd:/user/1002.user/5.session 

请注意,我所属的组别没有差异。 我注意到的唯一的变化是那些cgroups 。 现在让这些cgroups影响在命名空间中映射用户的能力?

组ID(GID)是从父进程创build的。 当你login时你得到一个terminal,用一组GIDs启动,你启动的每个进程都获得相同的GID。 出于安全考虑,您无法自行更改GID,只有在您注销并login后,所有更改才会生效,以便login过程以新的GID启动您的terminal。