o apache não seguirá links simbólicos | 403 permissão negada

2

Estou usando o Ubuntu 14.04 e tenho um problema com a configuração do Apache:

Eu criei um Symlink a partir de /var/www/htmltorwards/home/me/myWebDirectory

mas localhost/myWebDirectorytorna um

403 - permissão negada

e, de fato, sudo -u www-data ls /home/me/myWebDirectoryretorna uma permissão negada também

apache2.conf tinha a seguinte diretiva:

<Directory /var/www>
           Options Indexes FollowSymLinks
           AllowOverride None
           Require all granted
 </Directory>

Eu mudei para <Directory /var/www/html>, mas sem resultado.

Tentei adicionar o meusuário a www-data groupeste comando sudo usermod -a -G groupName userName, mas isso também não ajudou

o que eu perdi?

Edição : Eu mudei o grupo de /home/me/myWebDirectoryem www-data com direitos rx, mas sem sucesso também ...

Como eu disse, eu estava ciente de que tinha um problema de permissão de leitura, pois isso também sudo -u www-data ls /home/me/myWebDirectoryme devolvia uma permissão negada (o que significa que o www-data não tem o direito de ver o que contém).

Mas preciso que certo ponto da sua resposta seja mais claro:

Além disso, você deve usar a URL "localhost / html" em vez de "localhost / myWebDirectory".

Na verdade, eu fiz o Symlink como segue:

  • cd /var/www/html
  • ln -s /home/user/me/myWebDirectory myWebDirectory

então eu acho que acessar localhost/myWebDirectoryé o endereço certo, não?

chown -R www-data: www-data / var / www / html

  • desde o ubuntu 14.04, o Apache DocRoot é /var/www/html, por que eu deveria mudar de proprietário (como muitos outros deamons, raízes por padrão).
  • /localhost/testfile.htmlfunciona bem (undertsand testfile está dentro /var/www/html)
  • /localhost/phpmyadmintambém funciona, mesmo que seja um SymLink para /usr/share(enquanto estou tentando ter um symLink para /home/user...)

chmod + r / var / www / html # adiciona permissão de leitura ao diretório

chmod +r /var/www/html/* # add read permission to files in dir
  • Adicionar permissão de leitura a quem? para o meu usuário?
  • Mas é exatamente isso que eu não quero fazer.
  • Na verdade, eu quero que o apache seja capaz de ler em / home / me / myWebDirectory e não myUser para escrever nos diretórios do apache.

NB: Eu sei que há outra maneira de fazer isso, enquanto estiver ativando o apache, mod_userdire é provavelmente o que farei em seguida. Mas primeiro eu gostaria de entender como fazer essa solução "simples" funcionar ...

Developpeur tunisie
fonte

Respostas:

1

Finalmente resolvi o meu problema com a seguinte solução, pode ajudar alguém no futuro ...

sudo me mostra: www-data / home / me
sudo chmod 710 / home / me

sudo chown -R me: www-data / home / me / myWebDirectory

sudo chmod -R g + r / home / me / myWebDirectory

Cuidado: por exemplo, você pode não querer que todos os subdiretórios sejam legíveis pelo apache; portanto, adapte a diretiva -R (ecursiva).

Mas importante é dar ao grupo de usuários apache acesso de leitura à sua casa e depois acesso de leitura ao bebê em questão.

Developpeur tunisie
fonte
0

O problema existe devido à falta de permissões de leitura. Executar:

# chmod +r /var/www/html  # add read permission to dir
# chmod +r /var/www/html/* # add read persmission to files in dir
# chown -R www-data:www-data /var/www/html

Além disso, seu funcionário usa o URL "localhost / html" em vez de "localhost / myWebDirectory".

akozin
fonte