Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
基本上我想在一个被监禁的进程中执行一个 shell 命令。当我尝试以下代码(作为普通用户和 root 用户)时,它没有产生任何输出
if(!(pid=fork)){ chroot("./jail_folder"); chdir("/"); execl("/bin/ls","ls",NULL); }
我尝试了 perror() 函数,它给了我一个“没有这样的文件或目录”错误。是否可以在被监禁的进程中运行 shell 命令?如果是这样,我们该怎么做?
是的,这是可能的,但你必须让它可以被监狱访问(通常,这意味着将所需的程序 + 它的所有库复制到监狱;符号链接不起作用,硬链接是可以的)。否则,如果您将程序限制在目录树的一部分而没有/bin,则无法访问也就不足为奇了/bin/ls。
/bin
/bin/ls