代码之家  ›  专栏  ›  技术社区  ›  StuR

Apache在CentOS中的用户权限

  •  3
  • StuR  · 技术社区  · 15 年前

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

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

    终端:php test.php

    结果会按预期显示目录列表。

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

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

    2 回复  |  直到 12 年前
        1
  •  0
  •   StuR    15 年前

    我花了一段时间才弄明白,这样可能对其他人有好处。

    问题是我试图在/etc/sudoers中给Apache用户特权,而selinux(完全正确)拒绝了它们。

    所以我很快禁用了httpd的selinux,一切都正常。

    但对于公共Web服务器来说,这远不是理想的情况。

    对于最佳实践,应使用audit2allow设置许可操作。

        2
  •  0
  •   Gayolomao    12 年前

    如果在所需目录中执行ls-z,您将看到该目录的SELinux权限。

    要允许httpd/apache守护进程访问您可以执行的目录(r选项用于使其递归):

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

    希望它有帮助。