gpt4 book ai didi

php - 如何通过网络访问处理命令行权限

转载 作者:太空宇宙 更新时间:2023-11-03 17:05:47 25 4
gpt4 key购买 nike

这是我正在尝试做的:

我有一个虚拟服务器,运行不同的游戏服务器、语音服务器、机器人等。由于我们社区中有一些管理员不知道如何通过命令行处理服务器,所以我想创建一个网络界面,它基本上执行一些通过按钮点击命令并显示服务器将回答的内容。几乎一切正常,我使用 PHP 通过 shell_exec() 函数执行命令,但我遇到了一个问题:www-data 用户没有执行某些命令所需的权限。我在谷歌上搜索了一些解决方案,现在我知道以 root 身份运行 Apache 并不明智,所以我正在寻找另一种解决方案...

有谁知道解决这个问题的“漂亮”方法吗?我需要说的是,我对这些东西几乎是初学者,所以请不要期望有太多知识 :p

提前致谢并致以亲切的问候:)

最佳答案

一个可能的解决方案是将您要运行的所有命令保存在数据库表中,然后创建一个以 root 用户身份在 crontab 中运行的 PHP 脚本。此 PHP 脚本应具有运行 system_exec 的权限。

步骤是1) 在数据库表中保存命令=> "ls/etc/var/log/"2)PHP脚本/var/www/html/read_commands.php(从表中读取所有命令,用system_exec执行),然后删除命令。前任。

$command_from_table="ls /etc/var/log/";
system_exec($command_from_table);
//delete the command from the table.

3) 将/var/www/html/read_commands.php 添加到 crontab -e。

* * * * * sudo /var/www/html/read_commands.php

这可以给你一个想法,但有很多方法可以做到这一点,这可以在 apache 的一些许可下完成,但这是一种安全漏洞。

此外,您还需要确保用户不能插入关键命令,如 rm -rf/ lol

关于php - 如何通过网络访问处理命令行权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52452005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com