2012-06-19 65 views
1

使用PHP我希望能夠列出root的crontab。 我能夠作爲命令行Apache用戶運行下面的命令,並得到想要的結果:PHP:使用sudo列出root的crontab

sudo crontab -l 

然而,在我的PHP我有以下命令,該命令不起作用,並返回一個空集:

exec('sudo crontab -l', $out); 
print_r($out); 

它是環境?還是權限?

我自己也嘗試shell_exec()system()passthru()

另外請注意,我有殘疾SELinux和加入Apache來sudoers文件,以便它不需要被提示輸入密碼。

+0

這可能會在serverfault.stackexchange.com論壇更好。 –

+0

'echo \'whoami \',「\ n」;'告訴你什麼? – hakre

+0

您是否啓用了錯誤報告? – Mike

回答

1

解決:雖然我已經設置錯誤報告時,必須在命令的輸出重定向,像這樣:

exec('sudo crontab -l 2>&1', $out); 
var_dump($out); 

設置在此之後,我發現了以下錯誤:

sudo: sorry, you must have a tty to run sudo 

在對問題進行研究之後,解決方案是編輯sudoers文件並註釋掉:#Default requiretty。

http://www.zimbra.com/forums/installation/10553-solved-sudo-sorry-you-must-have-tty-run-sudo.html

我表示歉意,因爲我還鑽進這個問題,它變得少了PHP的問題,更UNIX系統問題。

+0

不要忘記接受這個答案作爲正確的答案! –

相關問題