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

Невозможно перейти по символической ссылке в apache2

У меня apache2 работает на Ubuntu 14.04.2 LTS. Проблема в том, что я получаю следующую ошибку (tail -f /var/log/apache2/error.log)

 [Wed Jun 10 18:18:56.114203 2015] [core:error] [pid 14802] [client 10.0.0.100:48843] AH00037: Symbolic link not allowed or link target not accessible: /var/www/html/xxxx

В файле: /etc/apache2/sites-enabled/000-default.conf у меня есть

    DocumentRoot /var/www/html
    <Directory />
            Options +FollowSymLinks
            AllowOverride None
    </Directory>

В каталоге / var / www / html у меня есть программная ссылка «xxxx», указывающая на / root / xxxx

Я перезапустил Apache

service apache2 restart

Но это не помогло.

Любые идеи?

Оказывается, у моего корневого каталога не было правильных разрешений для учетной записи www-data. Его разрешение было «drwx ------». Я сделал команду chmod a+rx" /root и теперь он отлично работает.

Вот несколько других возможностей для повышения безопасности, поскольку / root обычно доступен только root.

Если / root / xxxx - это папка, то вам не нужно предоставлять всем доступ для чтения к папке / root, вы можете быть более строгими и просто дать всем + x, что позволит им пройти по папке / root и перейти к / root / xxxx, поскольку путь известен, но не читать другие материалы, которые находятся в / root.

Если / root / xxxx - это файл, другой подход состоит в том, чтобы создать сценарий, который можно изменить только root (для большей безопасности используйте chattr +i команда, чтобы сделать его неизменным), который выполняет с ним операции, которые вы хотите, чтобы Apache мог выполнять (например, читать его). Затем, используя файл sudoers, разрешите пользователю Apache запустить этот сценарий от имени пользователя root с помощью команды sudo без запроса пароля.