C:在chroot内部调用system()

时间:2011-08-23 20:45:43

标签: c system call libraries chroot

我有一个用C编写的程序,它在jail中运行chrooted,它会进行一些系统调用,例如system ( "ls" )。问题是当我在jail中运行它时程序不执行系统调用。我已经包含了所有必需的可执行文件库(使用ldd bash命令找到它们),以及bash可执行文件(/bin/bash)和它的库(也可以在ldd中找到)。似乎缺少某些东西。有没有人对此有所了解?

2 个答案:

答案 0 :(得分:5)

根据定义,system运行“/ bin / sh -c< command>”。

/bin/sh复制到您的chroot监狱(或将其链接到/ bin / bash),您应该好好去。

答案 1 :(得分:1)

这可能有用,但拥有chroot的目的通常是为了防止攻击者能够执行任意shell命令。一旦你将/ bin / sh放入chroot监狱,你就已经消除了首先拥有chroot监狱的任何目的。