Apache为新文件获取403

时间:2017-07-18 14:13:35

标签: apache centos centos7 httpd.conf

我有一个网络应用,用户可以在其中查看图片和视频。 但是当我试图看到任何图像或视频时,我总是得到403权限被拒绝。

我检查了文件的许可及其

drwxrwxrwx.   2 apache apache  4096 Jul 12 09:57 ads
drwxrwxrwx.   5 apache apache  4096 Jul 12 09:58 img
drwxrwxrwx.   3 apache apache  4096 Jul 12 09:58 programs
drwxrwxrwx.   2 apache apache  4096 Jul 12 09:58 seassons
drwxrwxrwx.   2 apache apache  4096 Jul 18 08:34 temp
drwxrwxrwx. 374 apache apache 24576 Jul 18 08:34 videos

当服务器是httpd时,我试图在网络浏览器中打开这些文件夹中的图像。

如果我运行以下命令,一切都开始工作,但对于现有文件...如果用户上传新文件,那么将再次获得403,直到我再次运行命令。

sudo chmod -R g+r /videos
sudo chown -R apache /videos

我的httpd.config是

<Directory "/var/www">
AllowOverride All
# Allow open access:
Require all granted

进一步放宽对默认文档根目录的访问权限:

    选项索引FollowSymLinks     AllowOverride All     要求全部授予

我的操作系统是Centos7

使用以下权限创建新文件:

-rw-r-----. 1 tomcat tomcat 386688 Jul 18 09:14 mynewfile

1 个答案:

答案 0 :(得分:0)

由于创建时设置了权限,您的apache进程无法访问这些文件,因此您需要对其进行更改。我不知道为什么你的新文件的所有者/组被设置为Tomcat - 这必须是某个进程正在运行的用户(不是Apache?)。要设置对新创建的filesna目录的权限,请查看umask命令 - 这将设置当前目录中新创建的文件的权限。在每个目录中尝试umask 022,将默认权限设置为用户可写,世界可读。