CentOS中的Apache用户特权
-
09-10-2019 - |
题
嗨,我正在使用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
希望能帮助到你。
不隶属于 StackOverflow