Eu sei que unshare
e nsenter
são ferramentas userland para trabalhar com namespaces linux. Como eu, tanto quanto possível, tento evitar trabalhar com priveledges de raiz habilitados, muitas vezes me deparo com essas ferramentas unshare
me dando algumas "permissões negadas".
Gostaria que primeiro gostasse de saber como posso, no entanto, tornar essas ferramentas utilizáveis para usuários não-root?
Além disso, eu seria informado em segundo lugar que riscos ou problemas (em termos de segurança) eu poderia transformar em espaços de nomes utilizáveis para usuários não-root?
Meu conhecimento parcial atual relacionado a essa questão é que, com a introdução do recurso de kernel user namespace , seria possível para um usuário não-root criar primeiro um novo namespace de usuário no qual O usuário seria root e, portanto, criaria aninhamente os namespaces de usuário subseqüentemente a partir desse namespace de usuário.
Seria útil se uma resposta a esta pergunta apresentasse e discutisse outras formas para permitir o uso de namespaces (por exemplo, rede, ipc, mount, pid, ... etc.) para um usuário não-root, isto é, sem usar o namespace de usuário (que atualmente pode não ser ativado em toda a distribuição linux). Eu imagino que um programa de proxy setuid'ed, pode permitir usar namespaces para não-raízes, enquanto não está propenso a vazar priveledges? Talvez seja mesmo algo viável nas famosas ferramentas sudo
através da edição de /etc/sudoers
?
adicionalmente em segundo plano
Uma razão pela qual eu gostaria de poder empregar namespaces para um usuário não-root é que eu poderia, sem risco de codificação de raça, acompanhar os processos filho e descendente, uma vez que eles seriam indisciplinados e duplos, ou então setgpid()
out da árvore de processos. Isso é para dizer, enquanto eu estou interessado no caso geral como empregar namespaces do linux savely como um usuário não-root Eu também apreciaria qualquer dica, mesmo que só tenha permitido usar o namespace pid.
Tags namespace