如何通过Web访问处理命令行权限

时间:2018-09-21 23:06:27

标签: php ubuntu

这是我正在尝试做的事情:

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

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

在此先谢谢您的问候:)

1 个答案:

答案 0 :(得分:0)

一个可能的解决方案是将要运行的所有命令保存在数据库表中,然后创建一个以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 /大声笑之类的关键命令