0
我的C代碼做了POPEN失敗個seteuid(0)
seteuid (euid);
popen("/root/bin/iptables ....", "r");
後,當調用,它失敗,即使我有個seteuid撥打電話(0)。 (可執行文件有setuid)。
看來seteuid和popen不能一起工作。
當POPEN稱它在標準錯誤打印以下味精
iptables v1.4.6: can't initialize iptables table : Permission denied (you must be root)
換句話說popen方法「成功」,但由於新的外殼創建權限不維護和使用的情況下失敗。
我該如何解決問題?
什麼是錯誤?它如何失敗? – 2012-02-15 20:29:24
@BasileStarynkevitch編輯了這個問題。 – cateof 2012-02-15 20:38:48
你不檢查seteuid的返回碼,所以給** popen(「/ usr/bin /我是誰」,「r」); **你? – 2012-02-15 20:42:08