使用shell_exec()重启服务器?

时间:2012-10-04 00:59:04

标签: php linux reboot su natty

我有一个128MB的VPS,而且时不时它变得杂乱无章。重新启动将解决问题,但如果我想从浏览器(密码保护页面)重新启动该怎么办。 “www-data”如何使用PHP的shell_exec()函数重启我的机器(Natty Narwhal)?

我很困惑,因为它需要sudo。问题是我从未登录为www-data,它会是我的sudo密码吗?另外我如何包含密码来执行此操作?

使用root工作吗?如果是这样,我将如何从www-data进行su?

3 个答案:

答案 0 :(得分:6)

您是正确的shutdown脚本需要执行root或sudo权限。如果您确实需要通过可通过网络访问的网页重新启动服务器,则执行此操作的一种方法是将www-data添加到sudoers列表,但以访问{{1命令。

修改shutdown并添加以下行:

/etc/sudoers

该行允许%www-data ALL=NOPASSWD: /sbin/shutdown 群组访问www-data 而无需需要密码 - 因此请确保您的网络可访问脚本不公开

编辑sudoers文件后,您可以使用脚本中的以下内容重新启动:

sudo /sbin/shutdown

答案 1 :(得分:3)

另一种方法是让每三分钟运行一次root cron作业,检查文件。如果找到该文件,则会将其删除并重新启动系统。您的网页只需要创建文件。

答案 2 :(得分:1)

如何在SSH隧道中使用RSA密钥?

如果您将公钥添加到其他用户的授权主机文件中,您可以使用RSA密钥生成www-data用户,并使用SSH -i向其他用户(root)生成。只要您使用密钥进行交互式SSH,就不需要密码。

您可能想要检查您的确切需求,并确保这不是一个安全风险并且适合您的情况,但这是我想到的第一件事。

希望它有所帮助!