Isso está no CentOS 7
Eu tenho um compartilhamento do Windows mapeado em / mnt / t
A pasta / mnt / t está ligada simbolicamente a / var / www / html / users.
Quando logado como root, não tenho problema em acessar a pasta compartilhada e todas as subpastas do link / var / www / html / user
Eu tenho um arquivo index.html na raiz do compartilhamento de janelas em /mnt/t/index.html.
O Apache mostra corretamente o arquivo index.html, então eu sei que ele pode acessar o compartilhamento do Windows (que não funcionou imediatamente e exigiu a edição do httpd.conf).
Apache não me deixa acessar qualquer uma das pastas no compartilhamento do Windows abaixo da parte superior com uma mensagem de erro "Proibido você não tem permissão para acessar ...".
O log de erros diz "Link simbólico não permitido ou destino de link não acessível: / var / www / html / users"
A conta do Windows que eu uso para acessar o compartilhamento do Windows tem um nome de usuário "linux".
Não consigo entender por que o Windows permite que o Apache (ou usuário "linux") veja os arquivos no diretório superior, mas não os inferiores. O servidor Windows não tem mais restrições para pastas do que para arquivos.
Eu tentei muitas coisas encontradas neste e em outros fóruns sem sorte. A maioria está no arquivo httpd.conf exibido abaixo.
Qualquer sugestão apreciada.
Resposta a perguntas: O Apache é executado como UID 48. Esse é o UID que uso para mapear o compartilhamento do 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
Eu pedi o sysadmin do Windows para obter informações, vou postar sua resposta.
Aqui está o httpd.conf (sem comentários):
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>
Nota: este não é o arquivo competir httpd.conf, apenas a parte superior que possui as alterações que fiz. O restante não foi alterado desde a instalação. Não há hosts virtuais nessa máquina.
A pasta compartilhada do Windows não contém nenhum link simbólico.
Quando logado como "linux", posso acessar todos os arquivos e pastas na unidade compartilhada. Não consigo logar como "apache" ...
Ainda não há progresso :( Qualquer ajuda apreciada!
A partir de 29/03, nenhuma nova resposta e nenhum novo resultado do meu fim. Estou ficando desesperado.
Eu tentei algumas coisas relacionadas ao SE Linux sem sucesso. O SE Linux está habilitado, tentei desativá-lo momentaneamente e não fez diferença.