奇怪的 Apache HTTPD 403 错误

奇怪的 Apache HTTPD 403 错误

所以我遇到了这个非常奇怪的问题,我已经解决了,但我不明白为什么会发生这种情况。

我有一个通过 httpd 托管的文件。下面是我测试/想到的一系列内容,试图解释发生了什么:

  • 当我尝试访问该文件时,出现 403 错误。
  • 当我在 Apache 中执行索引列表时,它甚至没有显示,但其他文件却显示出来
  • 目录中其他 644 个文件显示在索引中,我可以访问它们
  • 将权限设置为 777 仍然会出现 403 错误,并且没有索引列表
  • 如果我尝试访问同一目录中的虚假文件,则会收到 404
  • 我创建了该文件的硬链接,但该硬链接未显示在索引中,因此我无法访问它
  • 我创建了该文件的副本,它显示在列表中,我可以访问它
  • 我将原始文件移至 .bak 并将副本移至与原始文件相同的文件名,我仍然可以访问副本,但无法访问原始文件
  • 我尝试 su - apache 来领导原始内容,并且能够
  • stat 似乎显示除了时间和 inode 值之外,两者之间的所有内容都相同
  • access_log 和 error_log 显示正在访问正确的文件,而我在两者中都得到了 403 [2014 年 4 月 22 日星期二 14:27:14] [错误] [客户端 XXX.XXX.XXX.XXX] (13) 权限被拒绝:访问 /PATH/ACE+TAO-6.2.0-1.el6.x86_64.rpm 被拒绝

还有什么人能想到我应该尝试解释一下这里发生了什么吗?我倾向于认为这是一个 httpd 问题,因为我可以毫无问题地 cp、stat 和 head 文件。但我不知道如何进行测试。

 $ 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

答案1

尝试一下restorecon ACE+TAO-6.2.0-1.el6.x86_64.rpm;这admin_home_t不应该出现在你的网络根目录中。

相关内容