Habilitar namespaces de usuário no kernel Debian


28

Estou tentando descobrir como habilitar a capacidade de espaços para nome de usuário no meu kernel (acho que CAP_SYS_USER_NS). Estou usando o Debian Stretch, kernel 4.6.0-1-amd64.

Meu pressuposto é que existe uma maneira de ativar os espaços de nome de usuário e recompilar o kernel. Após algumas horas pesquisando, posso encontrar uma postagem sobre isso no Ubuntu ( https://blog.tutum.co/2013/12/14/enabled-the-user-namespace-in-ubuntu-13-10-saucy/ ), mas não o Debian (o problema pode estar no caminho errado e, portanto, minhas pesquisas estão fora da base).

Meu jogo final é habilitá-los para acompanhar o Docker e o sandboxing do Google, que aparentemente exigem que os namespaces de usuário sejam ativados no kernel (por exemplo, meus contêineres do Chrome não funcionam mais).


Respostas:


38

No Debian, os usuários são compilados, mas desativados por padrão. Há um patch específico do Debian no kernel que adiciona este botão sysctl: kernel.unprivileged_userns_clone

Então você deve adicionar uma nova entrada /etc/sysctl.de configurá-la para 1

Manualmente, isso seria: echo 1 > /proc/sys/kernel/unprivileged_userns_clone(apenas para habilitá-lo até a reinicialização)

para uma solução permanente:

echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/00-local-userns.conf
service procps restart

É possível que exista um parâmetro de opção de inicialização equivalente, simplesmente não sei


11
Isso ainda funciona no Stretch, kernel 4.9.0-1-amd64 #1 SMP Debian 4.9.6-3 (2017-01-28) x86_64 GNU/Linux.
Reid

11
Existe uma razão para estar desabilitado por padrão no Debian?
Melroy

2
Historicamente, a segurança do espaço para nome do usuário era incerta. por exemplo: lwn.net/Articles/673597 . Se um usuário, como raiz dentro de seu próprio espaço para nome, pode induzir o kernel a permitir uma operação no host real, há escalação de privilégios. Os namespaces comuns de não usuários requerem permissão explícita de raiz (portanto, admin) e, portanto, executam o que o administrador escolheu: esse é um risco conhecido. Um mecanismo posterior foi adicionado ao kernel da baunilha: user.max_user_namespaces. Quando definido como 0, os espaços para nome do usuário estão desativados. O patch do Debian (atualmente do Ubuntu) ainda está por aí, mesmo que provavelmente obsoleto. Talvez por motivos de compatibilidade
AB

11
O kernel 4.18.3 ainda não foi lançado no Debian, portanto seu kernel não é um kernel de teste do Debian. Você pode ignorar completamente esse parâmetro (até instalar um kernel real do Debian). Veja também o meu comentário anterior sobre user.max_user_namespaces
AB

3
Ou simplesmente: sudo sysctl -w kernel.unprivileged_userns_clone=1.
Skippy le Grand Gourou
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.