Por que o LXC requer reinicialização?

2

A documentação do LXC diz:

Just before you create your first container, you probably should logout and login again, or even reboot your machine to make sure that your user is placed in the right cgroups.

Alguém pode explicar por que isso é necessário para executar algo como:

lxc-usernsexec -m b:0:100000:1 -- bash

Eu tenho mapeamentos adequados em /etc/subgid e /etc/subuid . Mas esse comando simplesmente diz permissão negada antes de eu reiniciar. O que significa cgroups certos ?

EDITAR

Antes de instalar o LXC:

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

Depois de instalar o LXC e reinicializar:

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

Note que não há diferença nos grupos aos quais eu pertenço. A única mudança que notei são aquelas cgroups . Agora, ter esses cgroups afeta a capacidade de mapear um usuário no namespace?

    
por Jacek L. 29.09.2016 / 22:11

1 resposta

1

IDs de grupo (GIDs) são herdados do processo pai. Quando você faz o login, você obtém um terminal, lançado com um conjunto de GIDs e cada processo que você inicia recebe os mesmos GIDs. Por motivos de segurança, você não pode alterar os GIDs por conta própria e quaisquer alterações não serão efetivadas até que você efetue logout e login, de forma que o processo login lance seu terminal com os novos GIDs.

    
por 30.09.2016 / 03:09