PHP - 关注通过网站运行 bash 脚本

标签 php linux

我正在开发游戏面板,并使用 PHP 和 BASH 构建它。因此,Web 面板通过在按下按钮时运行 bash 脚本来控制游戏服务器。到目前为止,一切都很好。当我需要运行 bash 脚本时,我的问题就来了,因为运行它们的用户需要 sudo 权限,否则脚本会出现意外行为:

  1. 我应该创建一个新用户并赋予它 sudo 权限,然后通过 SSH(通过 PHP)登录服务器吗?如果是这样,我如何才能安全地存储登录凭据,以便在黑客入侵我的网站时找不到它们?

  2. 我应该将 www-data sudo 权限授予特定脚本吗?这是一种危险的方法吗?

  3. 有没有更好更安全的方法从网页运行 bash 脚本?

我是一名新手 PHP 开发人员,我的第一个项目是在 Ubuntu 服务器上运行的游戏面板。请怜悯。 :)

最佳答案

我不会直接从 PHP 运行任何 bash 脚本,而是通过使用消息队列将两者分离。

让 PHP 脚本向交换器发送消息并将操作标记为“进行中”。然后让 bash 脚本作为接收消息的队列的消费者运行,处理它并运行必要的脚本。最后将消息传递到另一个由 PHP 使用的队列,并根据结果将操作状态更新为“已完成”或“失败”。这不是同步过程,但它是更安全的处理方式。

推荐阅读:

关于PHP - 关注通过网站运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48358462/

相关文章:

linux - 使用 `.gitattributes` 文件修复 Git 存储库中的行尾

python - Websocket 代码适用于 Windows 但不适用于 Linux

c++ - 从 malloc() 进行的 Windows 和 Linux native 操作系统/系统调用是什么?

php - 通过 $.ajax 将 javascript 值传递给 PHP

PHP:MDB2 错误 - 调用未定义的函数

php - 如何在 laravel 5 中使用分页?

php - 有没有办法防止 Markdown 嵌套滥用?

php - 如何将字符串转换为包含数学运算的数字?

linux - 从 "sysstat"的输出中 Grep 特定字段

linux - 在 dhcpd.conf 中查找空闲 IP 地址