我有一个128MB的VPS,而且时不时它变得杂乱无章。重新启动将解决问题,但如果我想从浏览器(密码保护页面)重新启动该怎么办。 “www-data”如何使用PHP的shell_exec()
函数重启我的机器(Natty Narwhal)?
我很困惑,因为它需要sudo。问题是我从未登录为www-data,它会是我的sudo密码吗?另外我如何包含密码来执行此操作?
使用root工作吗?如果是这样,我将如何从www-data进行su?
答案 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,就不需要密码。
您可能想要检查您的确切需求,并确保这不是一个安全风险并且适合您的情况,但这是我想到的第一件事。
希望它有所帮助!