1

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

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

使用root可以吗?如果是这样,那么我将如何从 www-data 执行 su?

4

3 回答 3

7

您是正确的,该shutdown脚本需要 root 或 sudo 权限才能执行。如果您确实需要通过 Web 可访问的页面重新启动服务器,一种方法是添加www-data到 sudoers 列表,但用于访问shutdown命令。

编辑/etc/sudoers并添加以下行:

%www-data ALL=NOPASSWD: /sbin/shutdown

该行将允许该www-datasudo /sbin/shutdown 无需密码即可访问 - 因此请确保您的 Web 可访问脚本不公开。

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

shell_exec('sudo /sbin/shutdown -r now');
于 2012-10-04T01:09:02.167 回答
4

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

于 2012-10-04T01:18:08.780 回答
1

在 SSH 隧道中使用 RSA 密钥怎么样?

您可以使用它为 www-data 用户生成一个 RSA 密钥和 SSH -i 给另一个用户(root),前提是您将公钥添加到另一个用户的授权主机文件中。然后,只要您使用密钥进行交互式 SSH,您就不需要密码。

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

希望能帮助到你!

于 2012-10-04T01:08:38.853 回答