Simular o chroot com não compartilhamento

11

Eu estou tentando escrever um bootstrapper para uma distribuição mínima do Linux.

Eu gostaria de construir em um ambiente semelhante ao chroot. Isso deve simplificar o empacotamento. Eu não me importo com segurança neste momento. O bootstrapper não deve exigir comandos de terceiros não padrão. Seria ótimo se não houvesse necessidade de ser root.

É por isso que o fakechroot (1) fakeroot (1) chroot (1) não é exatamente o que estou procurando.

É possível falsificar / usar unshare (1) e / bin / sh?

    
por Rooties 25.02.2013 / 20:45

2 respostas

4

Sim. Se o seu kernel suporta user_namespaces (e eles estão habilitados) , você pode primeiro "simular o usuário root", que então obtém o direito de invocar chroot (como um usuário root real). (Anteriormente, era necessário restringir-se apenas ao usuário raiz devido à possibilidade de escalonamento de privilégios por um usuário normal (digamos, por meio de binários raiz-set-UID e bibliotecas personalizadas no diretório chroot).

Você pode tentar isso no seu shell:

unshare --user --map-root-user --mount-proc --pid --fork
/sbin/chroot ......
su - user1
    
por 16.08.2016 / 09:55
1

Basta incluir ou instalar o fakeroot / fakechroot, já que eles já são perfeitamente apropriados para isso. Veja o cdebootstrap para se inspirar.

    
por 17.04.2013 / 13:30