我正在嘗試使用vpopmail的vadddomain
添加新的虛擬域。由於apache
用戶無法訪問vpopmail的二進制文件,我不能直接從PHP登錄exec('../bin/vadddomain...')
。如何使用PHP的root權限運行shell腳本?
我做了一個shell腳本(adddomain.sh
)如下:
#!/bin/bash
cd /home/lxadmin/mail/bin
./vadddomain $1 postmaster_password
並採用visudo
(忘了安全現在是)附加該行/etc/sudoers
:
ALL ALL=NOPASSWD: /home/lxadmin/mail/bin/adddomain.sh
我有這樣的事情在我的PHP腳本中:
exec('sudo /home/lxadmin/mail/bin/adddomain.sh example.com', $output);
但這根本不起作用(域example.com
不會被添加到vpopmail中)。 但是,當我通過SSH和root用戶運行此命令時,它的工作原理。
任何人都可以告訴我這裏有什麼問題嗎?
'chmod + s'也許? –
似乎simular:http://stackoverflow.com/questions/3173201/sudo-in-php-exec –
@WaleedKhan哪個文件到底?順便說一句''chmod'ed'adddomain.sh'和'vadddomain'和我的php文件沒有運氣:( –