【发布时间】:2015-04-16 04:06:02
【问题描述】:
我正在寻找一些建议..
我已经设法获得一个 php 脚本来调用另一个页面,该页面又以 root 身份运行系统命令。
这就是我所做的,我想看看我是否可以保护它。
在etc/sudoers.d 中,我添加了一个文件,其中包含 wwwrun 用户无需密码即可以 root 身份运行的文件列表。它包含类似于以下内容的条目:
wwwrun ALL=(ALL) NOPASSWD: /Web/scripts/helper/filea
wwwrun ALL=(ALL) NOPASSWD: /Web/scripts/helper/fileb
wwwrun ALL=(ALL) NOPASSWD: /Web/scripts/helper/filec
我的主网站有一个 test.php 页面,对此的权限是777 & wwwrun:root
在 test.php 中我有一些 jquery,它使用 ajax 调用 action.php&action=aaa
在 action.php 我有:
if ($_REQUEST['action']) == 'aaa') {
exec('/Web/scripts/helper/filea', $res);
}
if ($_REQUEST['action']) == 'bbb') {
exec('/Web/scripts/helper/fileb', $res);
}
if ($_REQUEST['action']) == 'bbb') {
exec('/Web/scripts/helper/filec', $res);
}
filea 包含几个 bash 命令。此文件具有655 和root:root 权限。
filea、fileb 和 filec 中的命令是固定的,如果传递了一个变量,它只是告诉它运行文件中的另一个固定命令。
我怎样才能使它更安全?显然没有 root 访问权限是最好的,但我需要运行一些命令来移动、编辑、更新、安装文件等。
更新
只是为了确认这是有效的。我想让它更安全一点。
我已尝试将所有权更改为 wwwrun:root 并将权限更改为 744
这使得只有 root 可以编辑文件,我认为这是个好主意..
谢谢
【问题讨论】: