两个相同的文件;Apache 说其中一个是被禁止的

两个相同的文件;Apache 说其中一个是被禁止的

我有一个文件,favicon.ico。它实际上是一大组嵌套文件,但纯粹是为了举例,就这一个。

如果我这样做cp favicon.ico favicon2.ico,Apache 就可以正常读取第二个。

如果我这样做mv favicon.ico favicon3.ico,Apache 会在 favicon3.ico 上抛出 403。

如果我su apache,我可以将该文件作为 apache 读取。

stat表示除 inode 编号外,两个文件完全相同。

是不是有什么隐藏的标志或者我遗漏了什么东西?我从来没有见过这样的事情。

error_log(13)Permission denied: access to /favicon3.ico denied

答案1

SELinux 拒绝你访问该文件,因为已移动代替复制从文件系统上的其他位置移动到其最终位置。因此它保留了其原始安全上下文,不允许 Apache 访问它。

要解决该问题,请重新标记该文件(以及可能的所有其余文件)。

例如:

restorecon -r -v /var/www/html

为了避免将来出现问题,请复制文件(并在必要时删除原始文件)。

相关内容