我已经创建了一个目录
/xyz/www
具有以下权限:
-rw-r--r--. 1 myuser developers
我编辑了我的http.conf:
DocumentRoot "/xyz/www/"
<Directory "/xyz/www/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
我收到 403 错误:You don't have permission to access / on this server.
查看日志:
(13)Permission denied: Can't open directory for index: /xyz/www/
我已尝试递归添加 777 权限,但仍然存在同样的问题。
答案1
你要做的就是复制相同的安全上下文/var/www/html 有。要这样做:
# ls -la --context /var/www/html
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t .
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t ..
-rw-r--r-- root root user_u:object_r:httpd_sys_content_t index.html
然后您必须将其设置为您想要的 DocumentRoot,如下所示:
# chcon -R system_u:object_r:httpd_sys_content_t /xyz/www
答案2
您的目标目录是 NTFS 还是 ext3?请使用以下方式检查目标目录的 SELinux 上下文:
ls -a --context /target/directory
如果目标目录的上下文相似
system_u:object_r:fusefs_t:s0
使用
setsebool -P httpd_use_fusefs on
可能对你有用,因为这可能只是文件系统的一个布尔问题。请确认布尔的安全性方面,因为我对此并不了解。
答案3
目录通常需要x
进程的权限才能访问其中的文件。使用您当前拥有的权限,您将能够访问ls
目录但无法cd
进入目录。由于目录归您所有,因此 Apache 将使用第三列的权限运行。
尝试chmod +x /xyz/www
。
如果仍然有问题,请检查权限/xyz/
。
答案4
您还应该<Directory /xyz/www>
在 apache 配置中添加类似这样的部分
Order allow,deny
Allow from all