Preciso executar um processo em um chroot com um sistema de arquivos virtual/proc, para que o processo não consiga acessar outros processos em execução no mesmo host. O processo deve ser executado como root e ter acesso total aos arquivos em chroot. Além disso, quaisquer alterações no sistema de arquivos devem ser preservadas no diretório chroot.
É mesmo possível?
Responder1
É possível montar /proc em um ambiente chroot - vejaesta respostapara saber mais sobre isso.
Eu teria preocupações de que o programa não seria capaz de obter acesso a outros processos, já que muitas (se não todas) dessas informações podem ser acessadas por meio de /proc (/proc/[pid number] lhe dará acesso a this ).
Não está claro o que você quer dizer com "mudanças no sistema de arquivos", mas se essas mudanças forem no sistema de arquivos, excluindo bits especiais como /proc, /dev/ etc, elas permanecerão no chroot.
Responder2
Você pode fazer isso usando namespaces Linux. Os contêineres (Docker, lxc) são feitos deles. man unshare
é seu amigo. Cuidado, pois o invasor pode escapar facilmente chroot
se você usá-lo de maneira inadequada. Leia sobre isso antes de usá-lo. Você foi avisado.