我正在开发一个设备并试图让用户重新启动托管它的服务器。
有没有办法让阿帕奇有权这样做?
点击提交按钮后,我尝试执行此代码:
<?php exec('/sbin/reboot'); ?>
但它说只有root才能做到。
所以,我尝试在sudoers文件中添加它:
nobody ALL = NOPASSWD: /sbin/reboot
我仍然遇到此错误,导致我无法从PHP重启服务器。
php正在使用的角色是apache。
我现在也尝试使用shutdown -r
并遇到同样的问题。
有没有办法做到这一点?我见过几个允许这样做的系统,但是我找不到它们是怎么做的......
感谢。
答案 0 :(得分:1)
不熟悉你正在做的事情,但我注意到了这一点:
你说:
nobody ALL = NOPASSWD: /sbin/reboot
...
The role php is using is apache.
所以你不应该在sudoers文件中说:
<强> apache
强> ALL = NOPASSWD: /sbin/reboot