如何让apache用户读取/ www root拥有的文件

我希望设置我的整个Web架构由root:root拥有,并且只允许apache用户阅读权限

我不知道是否有可能: chmod -R 744使得它从浏览器返回一个E403,pemission拒绝访问xxxx.php

但是由于Apache是​​公开的(“其他”?)它应该能够“读取”正确的? 我不明白 我也试过chown root:apache但结果是一样的,这更令人困惑…

文件需要644,目录需要755.在整个树上使用744意味着Apache没有权限读取任何目录的内容。

另外,根据操作系统的不同,如果您使用/www这样的非标准位置,则可能会遇到有关犬舍安全机制(apparmor,selinux)的问题。

我将提供一些示例命令,用于在不使用手机时清除烫发。

编辑:

这将设置文件和目录是世界可读的:

 find /www -type f -exec chmod 644 {} + find /www -type d -exec chmod 755 {} + 

为了澄清我之前所说的关于文件vs目录权限:

  1. 文件不需要读取执行位。 权限0744将文件权限设置为这样: -rwxr--r--
  2. 目录需要执行位和读取位。 这个StackOverflow文章提供了一个极好的概述如何目录权限的工作。

编辑(再次):

刚注意到Centos的标签,所以你可以不理会这个警告。 我认为 SELinux默认是closures的,所以这也不应该成为问题。 修复权限应该是你所需要的。

看看使用ACL。 你将能够作为所有者离开root,并仍然给apache访问权限(没有chmod'ing文件到一个妥协的安全点)。