奇怪的Apache HTTPD 403错误

所以我有这个奇怪的问题,我已经解决了,但我不明白为什么会发生。

我有一个文件,我通过httpd托pipe。 下面是我已经testing/想到的一些事情,试图解释发生了什么事情:

  • 当我尝试访问该文件时,我得到了一个403。
  • 当我在Apache中进行索引列表时,甚至不会显示,但是其他文件却可以
  • 目录中的其他文件是644在索引中显示,我可以访问它们
  • 权限设置为777,仍然得到403和没有索引列表
  • 如果我尝试访问同一个目录中的伪造文件,我得到一个404
  • 我创build一个硬链接到文件,硬链接不会显示在索引中,我无法访问它
  • 我创build了一个文件的副本,它显示在列表中,我可以访问它
  • 我将原件移动到.bak,并将副本移动到与原始文件相同的文件名,我仍然可以访问副本,但不能访问原件
  • 我尝试苏 – 阿帕奇头正本,我能够
  • stat似乎显示除了时间和inode值之外,两者之间的内容都是相同的
  • access_log和error_log显示正在访问正确的文件,并且在[Tue Apr 22 14:27:14 2014] [error] [client XXX.XXX.XXX.XXX](13)Permission denied:access到/PATH/ACE+TAO-6.2.0-1.el6.x86_64.rpm被拒绝

还有什么人可以想到,我应该试着解释这里发生了什么? 我倾向于认为这是一个httpd问题,因为我可以cp,stat和头文件没有问题。 但我不知道如何去testing它。

$ getfacl ACE+TAO-6.2.0-1.el6.x86_64.rpm # file: ACE+TAO-6.2.0-1.el6.x86_64.rpm # owner: root # group: root user::rw- group::r-- other::r-- $ ls -lZ ACE+TAO-6.2.0-1.el6.x86_64.rpm -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 ACE+TAO-6.2.0-1.el6.x86_64.rpm 

尝试restorecon ACE+TAO-6.2.0-1.el6.x86_64.rpm ; 该admin_home_t不应该在你的网站根目录。