Apache/CentOS 7: /var/www/html/ 由 root 拥有但创建的文件由 apache 拥有 - 我该如何解决这个问题?

Apache/CentOS 7: /var/www/html/ owned by root but created files owned by apache - how do I resolve this?

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

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

编辑: 另一个问题 - 我想要改变这个吗?我对 Linux 系统中的文件所有权没有很好的理解,但使用此配置似乎可以防止新创建的文件 (apache:apache) 对已存在的文件 (root:root).这 应该 防止 PHP 黑客能够操纵任何现有文件,对吧?这只是安全的假象吗?

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

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