Eu criei um novo namespace de usuário:
unshare -U bash
Como posso sair deste namespace para o namespace pai sem fechar o namespace recém-criado, para reinseri-lo posteriormente?
Eu tentei persistir (para nsenter
depois):
unshare --user=/root/uts-ns hostname
mas falhou:
unshare: mount /proc/2731/ns/user on /root/uts-ns failed: Operation not permitted
Os namespaces persistentes são criados criando uma montagem de ligação – use
mount --bind
para "fixar" o arquivo /proc que representa o namespace em outro caminho. Isso implica que ounshare
processo precisa ter privilégios de root em relação ao namespace inicial.No entanto, se
unshare
estiver criando um namespace de usuário , depois de inserir o novo namespace, ele não terá mais privilégios de root - ainda é o UID 0 no novo namespace, mas não está mapeado para o UID 0 "real", portanto, você não tem permissão para criar quaisquer novas montagens.Você ainda pode fazer isso manualmente - primeiro crie o namespace em uma janela do terminal e, em seguida, em outro terminal (fora do namespace) monte manualmente o arquivo de namespace. Ou faça isso enquanto o processo de 'unshare' está em segundo plano:
(Além disso, não misture namespaces de usuário e namespaces UTS.)