php - 使用 shell_exec() 重启服务器?

标签 php linux reboot su natty

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

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

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

最佳答案

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

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

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

该行将允许 www-data 组访问 sudo/sbin/shutdown 而无需密码 - 所以确保您的网络可访问脚本不公开。

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

shell_exec('sudo /sbin/shutdown -r now');

关于php - 使用 shell_exec() 重启服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12719008/

相关文章:

PHP 到 CSV 换行问题

powershell - 在 Windows 7 脚本中,如何确定当前系统关闭是否实际上是重新启动?

php - Zend_Search_Lucene查询解析问题

php - 上传文件后将文件名保存在数据库中

linux - 查看linux下当前设置的JAVA_OPTS

linux - diff 在没有时显示差异

linux - 如何组合多个 grep 命令?

linux - 如何在单个 CLI 命令中通过 ssh 重启多台远程机器

java - Spring Security 的刷新权限

php - 在 Laravel 中检查请求数组是否为空