chroot: falha ao executar o comando "/ bin / bash": Permissão negada

2

Estou tentando fazer um chroot como um determinado usuário. Para um usuário, ele funciona para outros usuários, e eu não tenho ideia do que está acontecendo.

Meu /etc/passwd no diretório chroot se parece com isso (parte relevante):

test0:x:1000:1000:test0:/home/test:/bin/bash
test1:x:1001:1001:test1:/home/test:/bin/bash
  • sudo chroot --userspec=test0 chroot_dir/ /bin/bash --login funciona bem
  • sudo chroot --userspec=test1 chroot_dir/ /bin/bash --login diz chroot: failed to run command ‘/bin/bash’: Permission denied
  • detalhes de /bin/bash no chroot: -rwxr-xr-x 1 user user 455188 Sep 19 08:58 , onde user é meu nome de usuário no sistema.

Alguma idéia de por que o usuário test1 não funciona? Se você precisar de mais alguma informação, basta perguntar, eu vou colocá-los dentro Obrigado muito antecipadamente.

    
por karlosss 29.09.2017 / 18:29

1 resposta

4

Com chroot (e nenhum namespace de usuário, que é o caso aqui), os diretórios e arquivos necessários para executar o comando fornecido para chroot precisam estar acessíveis ao usuário especificado. Isso inclui:

  • a raiz do chroot;
  • bin e bin/bash no chroot;
  • lib e quaisquer bibliotecas nele usadas por bash , se houver ( ldd bin/bash dirá o que elas são);
  • quando bash for processado, home/test e quaisquer scripts de inicialização ( .bashrc etc., se necessário).

A execução de chmod -R 777 obviamente corrige tudo isso; você pode usar permissões mais restritivas, contanto que o ID do usuário 1001 possa ler e executar os arquivos apropriados. chmod -R 755 bin lib e chmod 755 . permitiriam que bash fosse iniciado.

    
por 29.09.2017 / 19:24