如何以 root 身份运行 PHP exec() ?
我正在尝试在PHP中构建防火墙管理器,但是当我执行时,结果数组是空的。<?php exec('iptables -L'); ?>
我已经尝试过,,响应是(Apache正在使用的用户)。我该怎么做才能以root身份执行exec函数?(最好不更改 Apache 用户。<?php echo exec('whoami'); ?>
www-data
我正在尝试在PHP中构建防火墙管理器,但是当我执行时,结果数组是空的。<?php exec('iptables -L'); ?>
我已经尝试过,,响应是(Apache正在使用的用户)。我该怎么做才能以root身份执行exec函数?(最好不更改 Apache 用户。<?php echo exec('whoami'); ?>
www-data
别这样!您将对各种恶意黑客行为敞开大门。
查看“sudo”文档。
您应该能够将所需的所有命令设置为“sudo”脚本。编写具有有限功能的特定脚本比公开底层特权命令要好得多。
如:
exec ('sudo getIpTables.ksh')
我知道这是一个老问题
将用户 php 运行添加到 sudo 组(如果尚未分配)
使用 sudo -S,这样您就可以通过 echo 传递密码
$exec = "echo your_passwd | /usr/bin/sudo -S your command";
exec($exec,$out,$rcode);
如果您在路径上遇到问题 - 使用
"bash -lc 'echo your_passwd | /usr/bin/sudo -S your command'"
所以你会得到一个新的bash,它就像一个登录shell,并设置了路径
检查 sudo 的手册页