2

我正在尝试用 C 沙箱化一个实用程序。我按照以下步骤操作:

  1. file,directory, sharpoint在文件夹下为该实用程序创建沙箱资源/sandbox/myutil
  2. 来自“c”代码,称为chdir("/sandbox/myutil"), chroot("/")
  3. 确保实用程序可执行文件在 下可用/sandbox/myutil/bin/util.bin,并且所有依赖文件在 下可用/sandbox/myutil
  4. 调用实用bin/util.bin程序execve("/bin/util.bin",arg, env);

然而,/bin/util.bin没有按预期执行,进程接收到信号 18 并返回代码 13“EACCESS”。

但是,如果我使用从 shell 执行的命令而不是从 c 代码调用 , 则它可以正常工作chroot()chdir()execve()chroot /sandbox/myutil /bin/util.bin

我正在使用内核 2.6.17。

4

0 回答 0