apache 2.4 followymlinks在世界可写目录

时间:2015-12-11 15:47:52

标签: apache

考虑以下示例目录结构

/htdocs
   /staff
      /firstname.lastname
         index.html
      login -> firstname.lastname

在apache配置中我们有

 <Directory "/var/www/htdocs/staff">
     Options             +FollowSymLinks -SymLinksIfOwnerMatch
 </Directory>

假设目录人员由不同的用户拥有,然后是 符号链接。现在,如果目录人员是世界可写的请求 for / staff / login将产生一个

  Symbolic link not allowed or link target not accessible: /var/www/htdocs/staff/login

如果目录不是全局可写的,则请求成功。 所以准确地说

drwxrwxrwt+ root wwwgrp /var/www/htdocs/staff
lrwxrwxrwx+ user root   /var/www/htdocs/staff/login -> firstname.lastname

和+表示一个acl,它提供对运行apache守护进程的用户标识的读访问权。在这种情况下它失败了。如果我们将员工改为

drwxrwxr-t+ root wwwgrp /var/www/htdocs/staff

它有效。 如果链接的所有者与父目录员工的所有者匹配,则在两种情况下都适用。然后我们

drwxrwxrwt+ user wwwgrp /var/www/htdocs/staff
lrwxrwxrwx+ user root   /var/www/htdocs/staff/login -> firstname.lastname

并且acl没有变化。

只要目录和index.html文件对于apache守护程序是可读的,所有这些都与目标目录的所有者无关。

如何解释?这似乎与FollowSymLinks上的文档不一致。 从apache配置中删除-SymLinksIfOwnerMatch没有任何区别。

0 个答案:

没有答案