Назад | Перейти на главную страницу

фактические разрешения ссылки ни для чего не используются - А как насчет владения?

После нескольких месяцев периодических попыток выяснить, что вызывает эти Запрещенные ошибки, я обнаружил доказательства, которые убедительно свидетельствуют о том, что Apache2 использует фактическое владение и группу ссылки.

Полная иерархия разрешений корневого каталога документа:

drwxr-xr-x 21 root     root     4096 Jun 10  2014 /
drwxr-xr-x 13 root     root     4096 Sep  7  2014 /var
drwxrwxr-x 13 www-data www-data 4096 Nov 15 15:25 /var/www
drwxr-xr-x  2 jesse    jesse    4096 Nov 15 15:25 /var/www/html

В моем домашнем каталоге есть символическая ссылка / var / www.

lrwxrwxrwx 1 jesse jesse 9 Sep  8  2014 /home/jesse/www -> /var/www/

Теперь, поскольку у меня есть несколько версий сайта, над которым я работаю, я предпочитаю хранить все сайты в / var / www, а затем символическую ссылку на правильную производственную версию в / var / www / html.

root@vpn:/home/jesse# ls -l /var/www/html/
total 4
lrwxrwxrwx 1 jesse   jesse     16 Sep 29  2014 storytellingaustralia -> ../joomla_3.3.4/
lrwxrwxrwx 1 jesse   jesse     17 Oct  4  2014 tealeaftroubadours -> ../wordpress_4.0/
lrwxrwxrwx 1 jesse   jesse     17 Oct  5  2014 tealeaftroubadours.com.au -> ../wordpress_4.0/
lrwxrwxrwx 1 wp-user wp-user   8 Nov 15 15:25 test -> ../test/
lrwxrwxrwx 1 jesse   jesse     19 Jun  9 20:36 wa.storyguild.org.au -> ../wordpress_4.2.2/
lrwxrwxrwx 1 jesse   jesse     19 Nov 15 13:32 windwanderer.com.au -> ../wordpress_4.3.1/

Теперь вот аномалия

В настоящее время разрешения установлены следующим образом, и сайт доступен должным образом.

root@vpn:/home/jesse/www/html# ls -l test
lrwxrwxrwx 1 wp-user wp-user 8 Nov 15 15:25 test -> ../test/

root@vpn:/home/jesse/www/html# ls -lLd test
drwxr-x--- 2 wp-user www-data 4096 Nov 15 15:24 test

Однако, если я затем изменю владельца ссылки, то apache2 отправит мне уведомление «Запрещено».

root@vpn:/home/jesse/www/html# chown -h www-data test

root@vpn:/home/jesse/www/html# ls -l test
lrwxrwxrwx 1 www-data wp-user 8 Nov 15 15:25 test -> ../test/

root@vpn:/home/jesse/www/html# ls -lLd test
drwxr-x--- 2 wp-user www-data 4096 Nov 15 15:24 test

Запрещено

У вас нет разрешения на доступ к /test/index.html на этом сервере.

Если я затем изменю владельца цели на то же самое

root@vpn:/home/jesse/www/html# chown www-data test

root@vpn:/home/jesse/www/html# ls -l test
lrwxrwxrwx 1 www-data wp-user 8 Nov 15 15:25 test -> ../test/

root@vpn:/home/jesse/www/html# ls -lLd test
drwxr-x--- 2 www-data www-data 4096 Nov 15 15:24 test

Сайт снова доступен.

Кажется, что Apache2 требует, чтобы ссылки принадлежали тому же пользователю, что и цель.

Кто-нибудь знает, есть ли параметр, который контролирует это поведение или может пролить свет на то, как, почему и для чего это поведение? Все, о чем я могу думать, это то, что это была чья-то блестящая идея для дополнительной безопасности, но она, несомненно, доставила мне много головной боли.

В SymlinksIfOwnerMatch Опция дает именно то поведение, которое вы описываете, только при переходе по ссылкам, если права собственности совпадают.