嗨,我正在使用PHP脚本中的shell_exec命令:

$output = shell_exec('ls -l');
print_r($output);

终端:php test.php

这会导致目录列表如预期的。

切换到我的浏览器,我没有输出。

我需要向用户“ apache”授予特权,以便它可以执行某些命令,或将用户添加到具有此类特权的组中。我知道如何将用户添加到组等,我只是想知道将这种特权授予Apache用户的最佳实践方法是什么。

有帮助吗?

解决方案

这花了我一段时间来弄清楚,所以这可能对他人有益。

问题在于我试图在 /etc /sudoers中赋予Apache用户特权,而Selinux(完全正确地)拒绝了它们。

因此,我很快将SELinux用于HTTPD,所有人都在工作。

对于公共网络服务器来说,这远非理想情况。

至于最佳实践,应使用Audit2allow设置宽松操作。

其他提示

如果您在所需目录中执行LS -Z,则将看到该目录的SELINUX权限。

为了允许HTTPD/Apache守护程序访问该目录,您可以执行(-r选项是为了使其递归):

chcon -Rv --type=httpd_sys_content_t /desired/path

希望能帮助到你。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top