2013-01-12 33 views
0

基本上我想在一個監獄進程中執行一個shell命令。當我嘗試下面的代碼(同時作爲一個普通用戶& root用戶),它產生的任何輸出在關閉進程後使用execlp

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

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

我試過PERROR()函數,它給了我一個「沒有這樣的文件或目錄」錯誤。 是否有可能在監獄進程中運行shell命令?如果是這樣,我們該怎麼做?

回答

1

是的,這是可能的,但你必須讓它可以進入監獄(通常,它意味着複製所需的程序+它的所有庫到監獄;符號鏈接將不起作用,硬連接是好的)。否則,如果您沒有使用/bin而將程序限制在目錄樹的一部分中,則無法訪問/bin/ls也就不足爲奇了。

相關問題