我正在尝试使用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文件没有运气:( –