403 禁止访问名称不同但内容和权限相同的文件

403 禁止访问名称不同但内容和权限相同的文件

我正在运行 CentOS 6.3 和 Apache 2.2.15。

我使用的是 Apache 的默认设置。我提供的文件位于

/var/www/html

以下是其中两个

[root@gisele html]# ls -l *-production-1.0.6.pdf 
-r--r--r--. 1 root root 171769 Jan  1 21:12 copy-installation-production-1.0.6.pdf
-r--r--r--. 1 root root 171769 Jan  1 20:59 installation-production-1.0.6.pdf

复制文件是通过执行以下操作创建的文件

cp installation-production-1.0.6.pdf copy-installation-production-1.0.6.pdf

通过虚拟主机映射我可以访问这些文档。

copy-installation-production-1.0.6.pdf将提供服务。 installation-production-1.0.6.pdf返回 403 禁止。

唯一的区别是,原始文件是从另一台机器复制到服务器上的。

知道为什么原始文件无法使用但副本可以使用吗?

答案1

嗯,禁用 SELinux 只是一个临时的解决办法,而不是解决方案。我们不想让 Dan Walsh 哭泣;)

请尝试以下选项之一:

chcon --reference=/var/www/html/FileThatCanBeServed /var/www/html/FileWithError403

或者

chcon -R --reference=/var/www/html /var/www/html/

或者

chcon -R -t httpd_sys_content_t /var/www/html/

始终检查可使用 访问的文件的 SELinux 上下文ls -lZ,然后使用chcon选项--reference将上下文复制到其他文件。

答案2

啊,SELinux。和这个问题一样的问题: Apache 提供一些文件,其他文件则出现 403

关闭 SELinux 就是解决方案。

http://www.crypt.gen.nz/selinux/disable_selinux.html

CentOS 安装中应该会出现提示

Is this machine primarily a 
Server (1) / Desktop (2)
1/2...? 1

Would you like to run into bizarre errors later on?
Y/N...? y

Installing SELinux.

相关内容