我正在尝试用PHP构建防火墙管理器,但是当我执行时<?php exec('iptables -L'); ?>,结果数组是空的.
我试过了,<?php echo exec('whoami'); ?>响应是www-data(Apache正在使用的用户).如何以root身份执行exec函数?(最好不要更改Apache用户.)
基本上我试图从php网页重启服务.
这是代码:
<?php
exec ('/usr/bin/sudo /etc/init.d/portmap restart');
?>
但是/var/log/httpd/error_log,我知道了
无法改为sudoers gid:不允许操作
在/ var/log/messages中,我明白了
9月22日15:01:56 ri kernel:audit(1222063316.536:777):avc:被拒绝{getattr} for pid = 4851 comm ="sh"name ="var"dev = dm-0 ino = 114241 scontext = root:system_r :httpd_sys_script_t tcontext = system_u:object_r:var_t tclass = dir
9月22日15:01:56 ri kernel:audit(1222063316.549:778):avc:denied {setrlimit} for pid = 4851 comm ="sudo"scontext = root:system_r: httpd_sys_script_t tcontext = root:system_r:httpd_sys_script_t tclass = process
9月22日15:01:56 ri kernel:audit(1222063316.565:779):avc:拒绝{read} for pid = 4851 comm ="sudo"name ="shadow"dev = dm-0 ino = 379669 scontext = root:system_r:httpd_sys_script_t tcontext = system_u:object_r:shadow_t …