【问题标题】:Apache user privileges in CentosCentos 中的 Apache 用户权限
【发布时间】:2011-04-27 22:08:15
【问题描述】:
您好,我正在使用 PHP 脚本中的 shell_exec 命令:
$output = shell_exec('ls -l');
print_r($output);
终端:php test.php
这会按预期生成目录列表。
切换到我的浏览器我没有输出。
我需要向用户“apache”授予权限,以便它可以执行某些命令,或者将用户添加到具有此类权限的组中。我知道如何将用户添加到组等,我只是想知道向 apache 用户授予此类权限的最佳实践方法是什么。
【问题讨论】:
标签:
linux
apache
centos
shell-exec
【解决方案1】:
我花了一段时间才弄清楚,所以它可能对其他人有益。
问题是我试图在 /etc/sudoers 中授予 apache 用户权限,而 SELinux(非常正确地)拒绝了他们。
所以我很快为 httpd 禁用了 SELinux,一切正常。
尽管对于公共网络服务器来说,这远非理想情况。
至于最佳实践,应该使用 audit2allow 来设置许可操作。
【解决方案2】:
如果您在所需目录中执行 ls -Z,您将看到该目录的 SELinux 权限。
要允许 httpd/apache 守护进程访问您可以执行的目录(-R 选项用于使其递归):
chcon -Rv --type=httpd_sys_content_t /desired/path
希望对你有帮助。