2013-01-12 34 views
0

基本上我想在一个监狱进程中执行一个shell命令。当我尝试下面的代码(同时作为一个普通用户& root用户),它产生的任何输出在关闭进程后使用execlp

if(!(pid=fork)){ 
    chroot("./jail_folder"); 
    chdir("/"); 

    execl("/bin/ls","ls",NULL); 
} 

我试过PERROR()函数,它给了我一个“没有这样的文件或目录”错误。 是否有可能在监狱进程中运行shell命令?如果是这样,我们该怎么做?

回答

1

是的,这是可能的,但你必须让它可以进入监狱(通常,它意味着复制所需的程序+它的所有库到监狱;符号链接将不起作用,硬连接是好的)。否则,如果您没有使用/bin而将程序限制在目录树的一部分中,则无法访问/bin/ls也就不足为奇了。

相关问题