我在 CentOS 7 上安装了全新的、未经修改的 Apache。我注意到,当我查看/var/www/html 的文件夹权限时,它的内容归 apache 所有。然而,当一个文件被创建时,它的所有者和组是 Apache。

虽然 html 归 root:root 所有,但所有内容都归 apache:apache 所有吗?或 [user]:apache 与属于 Apache 组的用户?我应该怎么做?

编辑:
另一个问题 - 我想改变这个吗?我对 Linux 系统中的文件所有权没有很好的理解,但似乎通过这种配置,新创建的文件 (apache:apache) 无法对已存在的文件 (root:root) 采取行动。这应该可以防止 PHP hacks 操作任何现有文件,对吗?但这只是安全感的错觉吗?

最佳答案

检查您的/etc/httpd/conf/httpd.conf 文件并搜索用户和组 [例如用户 apache 组 apache]。默认情况下,这些是所有者。在您的网站中,无需为分配给 user:group 的文件和文件夹添加写入权限,但您可以设置所有者和其他人可读,以便通过网络访问。

更新的答案:
root 拥有 DirectoryRoot (/var/www/html) 的主要原因是安全性。您可以将 root 作为文件的所有者并将组设置为 apache。关于安全性,您确保 apache 组具有对文件的只读访问权限 [-> 第一项措施]。安全不是幻觉。虽然文件归 root 所有并且其他人没有 rw 访问权限,但外部攻击者很难获得对文件的写访问权限 [因为这是劫持站点的最常见方式]。

关于php - Apache/CentOS 7 :/var/www/html/owned by root but created files owned by apache - how do I resolve this?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28878816/

10-16 13:48