Não é possível criar namespace de usuário no RHEL

1

Estou tentando criar um namespace de usuário no RHEL 7, mas não consegui por causa do erro abaixo:

[root@teja7131 ~]# unshare -U /bin/bash
unshare: unshare failed: Invalid argument

Por favor, explique o formato correto do argumento para criar o namespace do usuário.

    
por Surya Teja Vemparala 03.11.2018 / 20:14

1 resposta

1

Se alguém usa strace para inspecionar o comando

$ strace -o logf -f unshare -U sh
unshare: unshare failed: Invalid argument
$ grep 'Invalid argument' logf
31728 unshare(CLONE_NEWUSER)            = -1 EINVAL (Invalid argument)
31728 write(2, "Invalid argument\n", 17) = 17

isso revela que a chamada do sistema unshare(2) falhou. Notavelmente CLONE_NEWUSER não aparece na página de manual, o que poderia ser um bug de documentação ou pode indicar que CLONE_NEWUSER não é suportado em uma instalação padrão do RedHat 7 (estou usando o Centos7 aqui em um sistema de teste, que é semelhante mas diferente do RedHat 7).

$ man 2 unshare | col -b | grep CLONE_NEWUSER
$ 

Isso é estranho; altagoobingledcorreu os termos unshare e CLONE_NEWUSER rendeu perguntas sobre unshare(CLONE_NEWUSER) apesar de que CONFIG_USER_NS está aparentemente habilitado no Centos 7:

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

No entanto, mais altagoobingleduckgoing mostra um thread lxc que indica que "Atualmente os namespaces do usuário estão na fase TECH PREVIEW" (como no RedHat 7.2), isso pode ou não funcionar. Adicionar user_namespace.enable=1 aos argumentos do kernel não ajudou em meu sistema Centos 7.5 (e não é necessário em testes, abaixo). No entanto, os página de recursos do Kernel listam os namespaces de usuário como suportados; Filipe Brandenburger encontrou é seguro habilitar namespaces de usuário que indica que por padrão o RedHat 7 habilita 0 namespaces para usuários, embora este número possa ser aumentado:

# cat /proc/sys/user/max_user_namespaces
0
# echo 640 > /proc/sys/user/max_user_namespaces
# unshare -U sh
sh-4.2$ 

Portanto, aumentar max_user_namespaces no Centos 7.5 funciona e não exige o sinalizador user_namespace.enable=1 do kernel.

Ainda mais leitura:

link

    
por 04.11.2018 / 17:56