chroot 命令:无法运行命令“节点”:没有这样的文件或目录

chroot 命令:无法运行命令“节点”:没有这样的文件或目录

我在命令行运行此命令:

 $ 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

那么它应该可以工作,即使节点可执行文件不是监狱中的文件。

还,作为旁白,如果有人知道如何让 chroot 在没有 sudo 的情况下运行某个目录,那就太好了。

答案1

我会使用符号链接选项。

另外,为了回答您的问题,我会编辑您的 sudoers 文件。

添加一行,如下所示:

SOMEUSER  ALL=/usr/sbin/chroot /DIR/TO/JAIL

相关内容