2013-12-09 114 views
0

我在PHP腳本執行SUDO命令,如何使用php代碼執行sudo命令?

$username = 'tester'; 
$password = 'testerspassword'; 
$node = 'localhost'; 
exec('sudo /usr/sbin/ejabberdctl register '.$username.' '.$node.' '.$password.' 2>&1',$output,$status); 

時,我用膩子努力和

sudo ejabberdctl register testuser1 localhost pass123 

其工作執行相同,但通過PHP腳本它不工作。 如何通過PHP腳本執行它,如果需要包含.ppk文件和用戶名以進行驗證,那麼如何使用它?

感謝先進!

+0

注意'php'通過他的用途執行它的腳本(Apache的,我猜)。因此,您必須授予該用戶執行該命令的權限。 – fedorqui

+0

你能協助如何授予權限嗎? – Purushottam

+0

您必須使用'visudo'在sudoers中添加權限。 – fedorqui

回答

1

PHP是在Apache的用戶帳戶下執行的。

您應該爲此用戶(通常稱爲WWW的數據,Apache或類似)添加到/etc/sudoer ...

+1

這樣做時,請記住限制apache(或系統中調用的任何內容)用戶的權限以僅執行該命令。否則,你將面臨安全問題。 –