É possível executar o debootstrap dentro de um ambiente fakeroot?

6

Eu tenho um script que prepara uma imagem de instalação executando debootstrap , faz algumas modificações nos arquivos e copia os arquivos para uma imagem de disco cujo backup foi feito por um arquivo.

Isso funciona em root , mas eu queria poder executar o script sem root privileges, já que ele realmente não precisaria de nenhum recurso privilegiado. Eu pensei em executar o script inteiro usando fakeroot , mas debootstrap falha com

W: Failure trying to run: chroot /tmp/tmp..... mount -t proc proc /proc

Existe alguma maneira de contornar isso?

    
por Petr Pudlák 09.07.2015 / 11:57

2 respostas

5

Em geral, sim , é possível executar debootstrap como um usuário não raiz por meio de fakeroot , mas há mais detalhes do que isso.

O problema imediato que você parece ter é tentar usar chroot como um usuário não-root; você precisa usar fakechroot , além de fakeroot . Por exemplo:

fakechroot fakeroot debootstrap sid /tmp/sid

Problemas posteriores que você pode executar para incluir a criação de montagens de loopback ou a criação de tabelas de partição de imagem de disco como um usuário não raiz.

Em vez de trabalhar com todos esses detalhes um por um, talvez seja mais fácil usar uma variante do debootstrap como polystrap , que também lida com compilação cruzada (por exemplo, gerar uma imagem armhf de x86-64) se você acabar querendo isso algum dia.

    
por 09.07.2015 / 12:17
0

O chroot (2) syscall requer privilégios de root, ou mais exatamente & tecnicamente o CAP_SYS_CHROOT capacidade (consulte capacidades (7))

Portanto, você não pode usar apenas fakeroot (você também precisa de fakechroot etc).

    
por 09.07.2015 / 12:17