2012-03-21 165 views
0

我试图用php启动/停止服务。我添加了用sudo运行命令

%admin ALL=(ALL) NOPASSWD: ALL 

到/ etc/sudousers。当我运行命令(如sudo ls /)作为常规用户时,它可以成功运行。

这里是我的PHP文件

exec("sudo /etc/init.d/service stop"); 

代码当我在浏览器请求该文件,然后在终端检查过程不停止。 我想念什么?

+0

你的apache用户是什么? – xdazz 2012-03-21 08:24:50

+1

Apache用户是www-data。 – din2 2012-03-21 08:28:43

+1

是%admin组中的万维网数据吗? – 2012-03-21 08:30:39

回答

0

%admin中的“%”,在您的sudoers行的开头,表示“组” - 即“admin group”。如果apache用户不在这个组中,那么这条线不适用于它。

尝试

www-data ALL=(ALL) NOPASSWD: ALL 

注意,这是在所有并不安全。您应该限制针对该特定用户的可用命令。这可以通过明确地给予它们或通过定义Cmnd_Alias来完成(参见man sudoersvisudo中的示例)。