您好我正在使用PHP脚本中的shell_exec命令:
$output = shell_exec('ls -l');
print_r($output);
终端:php test.php
这导致目录列表按预期进行。
切换到我的浏览器我没有输出。
我需要为用户'apache'授予权限,以便它可以执行某些命令,或将用户添加到具有此类权限的组。我知道如何将用户添加到组等,我只是想知道为apache用户授予此类权限的最佳实践方法是什么。
答案 0 :(得分:0)
我花了一段时间才弄清楚这可能对其他人有益。
问题在于我试图在/ etc / sudoers中提供apache用户权限,而SELinux(非常正确地)否认它们。
所以我很快就禁用了SELinux的httpd,一切正常。
对于公共Web服务器而言,这远非理想情况。
至于最佳实践,应使用audit2allow来设置许可操作。
答案 1 :(得分:0)
如果在所需目录中执行ls -Z,您将看到该目录的SELinux权限。
要允许httpd / apache守护程序访问您可以执行的目录(-R选项是为了使其递归):
chcon -Rv --type=httpd_sys_content_t /desired/path
希望它有所帮助。