Eu usaria a opção de link simbólico.
Também para responder ao seu lado, eu iria editar o seu arquivo sudoers.
Adicione uma linha que pareça:
SOMEUSER ALL=/usr/sbin/chroot /DIR/TO/JAIL
Eu corro este comando na linha de comando:
$ sudo chroot . node test/simple.js
E eu recebo este erro:
chroot: failed to run command ‘node’: No such file or directory
faz sentido, já que o executável do nó está localizado em um arquivo abaixo do PWD. Então, o que é uma boa maneira de obter o executável do nó dentro do PWD, devo fazer uma ligação simbólica?
No final das contas , estou mais interessado em permitir que todos os executáveis sejam executados na jaula chroot, mas só permita ler e gravar em arquivos dentro da jaula chroot, AKA:
randos/
node
a.js
jail/
foo/foo.js
digamos que eu faça:
cd jail/foo
sudo chroot . ../randos/node ../randos/a.js
que deve falhar porque eu não deveria ser capaz de ler randos / a.js. Mas se eu fizer isso :
cd jail/foo
sudo chroot . ../randos/node foo.js
então deve funcionar, mesmo que o arquivo executável do nó não seja um arquivo dentro da cadeia.
Além disso, como um aparte , se alguém souber como fazer o chroot rodar sem o sudo em um determinado diretório, isso será bom.
Eu usaria a opção de link simbólico.
Também para responder ao seu lado, eu iria editar o seu arquivo sudoers.
Adicione uma linha que pareça:
SOMEUSER ALL=/usr/sbin/chroot /DIR/TO/JAIL
Tags chroot