Apache2 - символическая ссылка не разрешена или недоступна - PullRequest
0 голосов
/ 21 сентября 2019

У меня есть простая настройка VHost, например:

<VirtualHost *:443>
    ServerName my.server.com

    # SSL setup

    DocumentRoot /srv/www/htdocs/
    HostnameLookups Off
    UseCanonicalName Off
    ServerSignature Off

    <Directory "/srv/www/htdocs">
        Options +Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

, а мой /srv/www/htdocs содержит несколько символических ссылок, например release.FollowSymLinks включен, но Apache жалуется на

[Sat Sep 21 17:16:26.988517 2019] [core:error] [pid 28117] [client x.x.x.x:39412] AH00037: Symbolic link not allowed or link target not accessible: /srv/www/htdocs/releases

Это вывод namei -om /srv/www/htdocs/releases:

f: /srv/www/htdocs/releases
 drwxr-xr-x root    root /
 drwxr-xr-x root    root srv
 drwxr-xr-x root    root www
 drwxr-xr-x jenkins root htdocs
 lrwxrwxrwx root    root releases -> /relstore
   drwxr-xr-x root    root /
   drwxrwxrwx root    root relstore

, поэтому можно ясно увидеть, что символическая ссылка может быть разрешена ичто все каталоги имеют права rx мира.SELinux можно исключить, поскольку он отключен (как проверено с помощью getenforce).

Что не так?

1 Ответ

0 голосов
/ 21 сентября 2019

Apache 2.4.x, по-видимому, проверяет владельца символической ссылки по умолчанию, и затем этот владелец должен соответствовать владельцу целевой символической ссылки.Чтобы отключить это поведение, укажите -SymLinksIfOwnerMatch в качестве дополнительной директивы Options, т.е.

<Directory "/srv/www/htdocs">
    Options +Indexes +FollowSymLinks -SymLinksIfOwnerMatch
    ...
</Directory>
...