명령줄에서 다음 명령을 실행합니다.
$ sudo chroot . node test/simple.js
다음 오류가 발생합니다.
chroot: failed to run command ‘node’: No such file or directory
노드 실행 파일이 PWD 아래 파일에 있기 때문에 이는 의미가 있습니다. 그렇다면 PWD에서 노드 실행 파일을 얻는 좋은 방법은 무엇입니까? 심볼릭링크해야 하나요?
그러나 결국, 제가 가장 관심 있는 것은 모든 실행 파일이 chroot 감옥에서 실행되도록 허용하지만, chroot 감옥에서는 파일 읽기 및 쓰기만 허용하는 것입니다.
randos/
node
a.js
jail/
foo/foo.js
내가 이렇게 한다고 가정해 보세요:
cd jail/foo
sudo chroot . ../randos/node ../randos/a.js
randos/a.js를 읽을 수 없어야 하기 때문에 이 작업은 실패해야 합니다. 하지만 내가 그렇게 한다면:
cd jail/foo
sudo chroot . ../randos/node foo.js
그러면 노드 실행 파일이 감옥에 있는 것이 아니더라도 작동해야 합니다.
반품,해설자로서, sudo 없이 chroot가 특정 디렉토리를 실행하도록 하는 방법을 아는 사람이 있다면 좋을 것입니다.
답변1
저는 심볼릭 링크 옵션을 사용하겠습니다.
또한 귀하의 질문에 답변하기 위해 sudoers 파일을 편집하겠습니다.
다음과 같이 줄을 추가합니다.
SOMEUSER ALL=/usr/sbin/chroot /DIR/TO/JAIL