Это на CentOS 7
У меня есть общий ресурс Windows, сопоставленный с /mnt /t
Папка /mnt /t символически связана с /var /www /html /users.
При входе в систему как root у меня нет проблем с доступом к общей папке и всем подпапкам по ссылке /var /www /html /user
У меня есть файл index.html в корневой папке Windows по адресу /mnt/t/index.html.
Apache правильно показывает файл index.html, поэтому я знаю, что он может получить доступ к общему ресурсу Windows (который не работал напрямую и требовал редактирования httpd.conf).
Apache не позволяет мне получить доступ ни к одной из папок в общем ресурсе Windows ниже верхнего уровня с сообщением об ошибке «Запрещено, у вас нет прав доступа ...».
В журнале ошибок указано «Символическая ссылка не разрешена или цель ссылки недоступна: /var /www /html /users»
Учетная запись Windows, которую я использую для доступа к общему ресурсу Windows, имеет имя пользователя "linux".
Я не могу понять, почему Windows позволяла Apache (или пользователю "linux") видеть файлы в верхнем каталоге, но не в нижнем. Сервер Windows не имеет больше ограничений для папок, чем для файлов.
Я перепробовал много вещей, найденных на этом и других форумах, но не повезло. Большинство из них находятся в файле httpd.conf, показанном ниже.
Любое предложение приветствуется.
Ответ на вопросы: Apache работает как UID 48. Это UID, который я использую для сопоставления общего ресурса Windows:
\\FWB-FILE-V01\Public /mnt/t cifs ip=10.168.1.32,user, uid=48,rw,suid,iocharset=utf8,credentials=/root/.smbcredentials 0 0
Я попросил у системного администратора Windows информацию, я выложу его ответ.
Вот httpd.conf (без комментариев):
ServerRoot "/etc/httpd" Listen 10.168.101.35:80 Include conf.modules.d/*.conf User apache Group apache ServerAdmin root@localhost ServerName 10.168.101.35:80 <Directory /> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride none Require all denied </Directory> DocumentRoot "/var/www/html" <Directory "/var/www"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride None # Allow open access: Require all granted </Directory> # Further relax access to the default document root: <Directory "/var/www/html"> Options All AllowOverride None Order allow,deny Allow from All Require all granted </Directory> <Directory "/var/www/html/users"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from All # Allow open access: Require all granted </Directory> <Directory "/var/www/html/users/*"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from All # Allow open access: Require all granted </Directory> <Directory "/mnt/t"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from All # Allow open access: Require all granted </Directory> <Directory "/mnt/t/users"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from All # Allow open access: Require all granted </Directory>
Примечание: это не конкурентный файл httpd.conf, а только верхняя часть с внесенными мною изменениями. Остальная часть не была изменена с момента установки. На этой машине нет виртуальных хостов.
Общая папка Windows не содержит символической ссылки.
Когда вы вошли как "linux", я могу получить доступ ко всем файлам и папкам на общем диске. Я не могу войти как "apache" ...
По-прежнему нет прогресса :( Любая помощь приветствуется!
По состоянию на 3/29, нет нового ответа и нет нового результата от моего конца. Я в отчаянии.
Я попробовал несколько вещей, связанных с SE Linux, но безуспешно. SE Linux включен, я попытался отключить его на мгновение, и это не имело никакого значения.