我正在尝试使用php启动/停止服务。我添加了
%admin ALL=(ALL) NOPASSWD: ALL
到/ etc / sudousers。当我以普通用户身份运行命令(如sudo ls /)时,它会成功运行。
这是我的php文件中的代码
exec("sudo /etc/init.d/service stop");
当我在浏览器中请求此文件然后检入终端时,该过程不会停止。 我错过了什么?
答案 0 :(得分:0)
你的sudoers行开头的%admin
中的“%”表示“群组” - 即“管理员群组”。如果apache用户不在此组中,则该行不适用于该行。
尝试
www-data ALL=(ALL) NOPASSWD: ALL
请注意,根本不安全。您应该限制此特定用户的可用命令。这可以通过明确地给出它们或通过定义Cmnd_Alias
(参见man sudoers
中的visudo
和示例)来完成。