2012-09-02 37 views
2

我已經找到一個名爲「A」的目錄,然後啓動一個名爲「B」這就是它是把參數作爲一個路徑,並有一個EXECL線的可執行文件() :查找目錄,並啓動一個可執行程序,它

execl("./C","C",path,(char*)0); 
    perror("Exec failed"); 

其中C在'A'中且具有suid位設置。

。 我認爲是這樣的:

find -name A -execdir {}/B path \ 

但是我得到的是:

Exec failed: Permission denied 

有什麼不對?從A啓動B不會給我帶來任何錯誤。

對不起,如果這是一個愚蠢的問題,我真的是新的bash腳本。任何幫助表示讚賞,非常感謝。

回答

5

當你通過find命令運行B,當前目錄是含A(A的即父目錄)的目錄,而不是A.

如果您運行find -path '*/A/B' -execdir {} \;你會得到正確的目錄。

這可能是也可能不是解決你的實際問題的正確方法。在這個例子中,B也是沒有用處的,所以這是很難猜測的現實世界的問題是什麼。您是否考慮過sudo

+0

它工作得很好,謝謝! – cifz

相關問題