Ativar o executável com o diretório raiz personalizado

1

Como posso iniciar um executável para que ele ache que o diretório raiz está em um caminho personalizado e não na raiz real. Eu pensei que seria possível com o sandbox-exec, mas não encontrei nenhuma maneira até agora.

    
por Shien 10.04.2015 / 16:43

1 resposta

1

O termo geral em sistemas operacionais do tipo Unix para executar um processo com um diretório raiz dedicado é chroot (abreviação de "alterar diretório raiz").

A maneira canônica de fazer isso é algo como:

$ mkdir /tmp/chroot-dir
$ cp /bin/sh /tmp/chroot-dir/
$ chroot /tmp/chroot-dir /sh

Supondo que você tenha executado a execução em / tmp, isso alteraria o diretório raiz de tal forma que /tmp/chroot-dir se tornasse o novo / para esse processo, então execute /sh dentro do contexto disso. É possível que chroot exija que você seja o usuário root; Nesse caso, substitua sudo chroot por chroot . Quando você sair do shell gerado, tudo voltará ao normal.

Como o / bin / sh provavelmente precisa de algumas bibliotecas, o exemplo específico provavelmente falhará, mas estará apontando na direção certa para o que mais é necessário. No Linux, executar ldd /bin/sh dirá quais bibliotecas adicionais são necessárias; OS X provavelmente tem algo semelhante, se não a mesma coisa. O software não-trivial também precisa frequentemente de arquivos de configuração, nós de dispositivos e outras probabilidades e extremidades disponíveis em sua visão do sistema de arquivos.

O software orientado ao consumidor geralmente não é muito bom para ser chrooted sem esforço significativo, mas o software de servidor pode ser coaxed em um chroot com relativamente pouco esforço, e alguns até vêm com documentação sobre o que é necessário.

    
por 10.04.2015 / 16:53