我正在尝试使用 php 启动/停止服务。我已经添加了
%admin ALL=(ALL) NOPASSWD: ALL
到/etc/sudousers。当我以普通用户身份运行命令(如 sudo ls/)时,它运行成功。
这是我的 php 文件中的代码
exec("sudo /etc/init.d/service stop");
当我在浏览器中请求此文件然后在终端中检查时,该过程不会停止。 我想念什么?
最佳答案
sudoers 行开头的 %admin
中的“%”表示“组”,即“管理组”。如果 apache 用户不在该组中,则此行将不适用于它。
尝试
www-data ALL=(ALL) NOPASSWD: ALL
请注意,这一点也不安全。您应该限制该特定用户可用的命令。这可以通过明确给出它们或定义 Cmnd_Alias
来完成(请参阅 man sudoers
和 visudo
中的示例)。
关于linux - 使用 sudo 运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9800863/