Namespaces de usuário do Linux: alterando a propriedade do arquivo

0

Estou tentando entender os namespaces do Linux e estou bloqueado em um caso de uso específico. O que eu tento fazer é alterar a propriedade de um arquivo que foi criado com privilégio de root antes de criar o namespace, usando o recurso de mapeamento raiz de namespaces.

Aqui está um exemplo, do ambiente do CentOS 7 (kernel 3.10.0-693.5.2.el7.x86_64)

Eu crio um arquivo como root em um namespace de usuário:

unshare --user --map-root-user --propagation shared --uts --ipc --net --pid --fork touch /tmp/test

então tento alterar a propriedade desse arquivo:

unshare --user --map-root-user --propagation shared --uts --ipc --net --pid --fork chown root:mail /tmp/test

e recebo o seguinte erro:

chown: changing ownership of ‘/tmp/test ’: Invalid argument

Se eu fizer a mesma manipulação de arquivos do mesmo namespace de usuário, isso estará funcionando corretamente:

unshare --user --map-root-user --propagation shared --uts --ipc --net --pid --fork touch /tmp/test ;chown root:mail /tmp/test

Com a opção que dou ao comando unshare , sou root dentro do espaço de nomes e o id de mapeamento 0 a 0:

unshare --user --map-root-user --propagation shared --uts --ipc --net --pid --fork cat /proc/$$/uid_map
         0          0 4294967295

Então, o que eu não entendo é por que meu chown não está funcionando no primeiro caso?

    
por Joris.B 21.11.2018 / 17:57

0 respostas

Tags