不可思议的Apache 403

我有两个文件在我的根目录。 一个送达罚款,另一个送回403。

以下是access_log的输出:

xx.xx.xx.xx - - [22/Nov/2012:09:53:21 -0500] "GET /index.html HTTP/1.1" 200 6 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11" xx.xx.xx.xx - - [22/Nov/2012:09:53:22 -0500] "GET /sales.html HTTP/1.1" 403 309 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11" 

以下是error_log的说法:

 [Thu Nov 22 09:53:22 2012] [error] [client xx.xx.xx.xx] (13)Permission denied: file permissions deny server access: /var/www/html/sales.html 

这是一个目录列表:

 09:55:52 myhost /var/www/html> ls -la total 104 drwxr-xr-x. 2 root root 4096 Nov 21 16:05 . drwxr-xr-x. 6 root root 4096 Nov 21 11:06 .. -rwxrwxrwx. 1 apache apache 6 Nov 22 09:47 index.html -rwxrwxrwx. 1 apache apache 91196 Nov 21 16:05 sales.html 

最后是httpd.conf中的设置

 <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> 

这真是烘烤我的面条。 我已经尝试了各种文件/目录权限,并重新启动了Apache多次,但无济于事。 有任何想法吗? 为什么一个文件服务,而不是另一个?

那么,我对SELinux或安全上下文了解不多,但这似乎是在这里玩的。

 12:10:24 myhost /var/www/html> ls -laZ drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 . drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 .. -rwxrwxrwx. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 index.html -rwxrwxrwx. apache apache unconfined_u:object_r:user_home_t:s0 sales.html 

执行以下命令似乎解决了Apache的权限问题。

 12:10:28 iceberg /var/www/html> sudo restorecon -r sales.html 

而作为一个双重检查,我们可以看到,行为不端的文件的安全上下文现在是不同的。

 12:10:34 myhost /var/www/html> ls -laZ drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 . drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 .. -rwxrwxrwx. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 index.html -rwxrwxrwx. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 sales.html 

我想你应该看看猴子博索说什么。 但是,如果没有,那么你可以尝试临时SELinux。 不要在公共互联网上的生产服务器上这样做,但真的.. 不要

 sudo setenforce 0 

在你检查后..

 sudo setenforce 1 

当然,别忘了把它重新开启。