gpt4 book ai didi

CENTOS 7 上的 php shell_exec sudo

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

我在 centos 7 上遇到了 shell_exec 和 sudo 的问题。从 apache 执行时,以下行没有输出:

$stat = shell_exec('sudo scripts/usb/hidusb-relay-cmd ID=HIUPS stat');

var_dump($stat);给出 NULL

我使用 visudo 添加了以下行:

apache ALL=NOPASSWD: /var/www/html/scripts/usb/hidusb-relay-cmd

Defaults!/var/www/html/scripts/usb/hidusb-relay-cmd !requiretty

在/var/log/secure 中我可以读到如下内容:

Jun 4 17:45:43 anhelli sudo: apache : TTY=unknown ; PWD=/var/www/html ; USER=root ; COMMAND=scripts/usb/hidusb-relay-cmd ID=HIUPS stat

我试过 su - apache 并如上所述运行 sudo 但它工作正常。为什么我无法获得 shell_exec 的输出,有什么想法吗?

非常感谢您的帮助。此致bzc0fq

最佳答案

终于解决了这个问题。这是 selinux 策略阻止访问 hidusb-relay-cm 文件。解决方案是使用命令添加本地安全策略:

cat /var/log/audit/audit.log | grep denied | grep hidusb-relay-cm |audit2allow -M hidusb-relay-cm

semodule -i hidusb-relay-cm.pp

我每次运行 audit2allow 实用程序时都会更改策略名称。我不得不运行它 5 次,直到所有拒绝都得到“服务”。我还必须将 sebool 设置为两次:

setsebool -P httpd_mod_auth_pam on

setsebool -P httpd_unified on

问题是我必须运行命令

semodule -DB

在/var/log/audit/audit.log 中查看隐藏的拒绝以上对我有用。

关于CENTOS 7 上的 php shell_exec sudo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37631151/

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