Bil*_*eal 35 permissions centos apache-httpd
我有一个全新的 CentOS 6 安装,它在文档根目录中有一个指向我的开发文件的符号链接:
[root@localhost html]# ls -l
total 4
-rwxrwxrwx. 1 root root 0 Sep 18 20:16 index.html
-rwxrwxrwx. 1 root root 17 Sep 18 20:16 index.php
lrwxrwxrwx. 1 root root 24 Sep 18 20:19 refresh-app -> /home/billy/refresh-app/
Run Code Online (Sandbox Code Playgroud)
我的 httpd.conf 有这个:
<Directory "/">
Options All
AllowOverride None
Order allow,deny
Allow from all
</directory>
Run Code Online (Sandbox Code Playgroud)
符号链接的目标具有允许 apache 读取它想要的任何内容的权限:
[root@localhost billy]# ls -l
total 40 (Some entries were omitted because the list was too long
drwxr-xr-x. 7 billy billy 4096 Sep 18 20:03 refresh-app
Run Code Online (Sandbox Code Playgroud)
我还尝试通过更改禁用 SELinux /etc/selinux/conf
:
SELINUX=disabled
Run Code Online (Sandbox Code Playgroud)
然而,无论我做什么,当有人试图访问该链接时http://localhost/refresh-app/
,我都会收到一个 403 FORBIDDEN 错误页面,它写在/var/log/httpd/error_log
:
Symbolic link not allowed or link target not accessible
Run Code Online (Sandbox Code Playgroud)
为什么 Apache 无法访问符号链接的目标?
Bil*_*eal 48
发现问题。原来,阿帕奇要访问不只是我服务的目录,/home/billy/refresh-app/
但也高于,即每个目录/home/billy/
,/home
和/
。(我不知道为什么......让某人访问子目录不应该要求放弃对该子目录之上的所有内容的权限......)
我猜它正在寻找.htaccess
什么,或者 *nix 可能对它如何处理目录横向权限感到奇怪。
icc*_*c97 15
我有一个类似的问题,我有以下配置,它曾经与 Ubuntu 10 一起工作,但停止与 Ubuntu 14 (Apache 2.4) 一起工作:
<Directory /var/www/vhosts/example.com/httpdocs>
Options +FollowSymLinks
</Directory>
Run Code Online (Sandbox Code Playgroud)
切换到此排序问题(即使网络服务器用户无法直接访问符号链接)
<Directory /var/www/vhosts/example.com/httpdocs>
Options +ExecCGI +FollowSymlinks -SymLinksIfOwnerMatch
</Directory>
Run Code Online (Sandbox Code Playgroud)
据我所知,它只是-SymLinksIfOwnerMatch
设置,与 Apache 2.4 中的更改有关,但我还没有尝试研究确切原因。
我还认为这可能归结为openbase_dir
PHP 中的限制,但事实并非如此。