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