用sudo运行命令

时间:2012-03-21 08:19:01

标签: linux

我正在尝试使用php启动/停止服务。我添加了

%admin ALL=(ALL) NOPASSWD: ALL

到/ etc / sudousers。当我以普通用户身份运行命令(如sudo ls /)时,它会成功运行。

这是我的php文件中的代码

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

当我在浏览器中请求此文件然后检入终端时,该过程不会停止。 我错过了什么?

1 个答案:

答案 0 :(得分:0)

你的sudoers行开头的%admin中的“%”表示“群组” - 即“管理员群组”。如果apache用户不在此组中,则该行不适用于该行。

尝试

    www-data ALL=(ALL) NOPASSWD: ALL

请注意,根本不安全。您应该限制此特定用户的可用命令。这可以通过明确地给出它们或通过定义Cmnd_Alias(参见man sudoers中的visudo和示例)来完成。