J'ai une toute nouvelle installation CentOS 6, qui a un lien symbolique dans la racine du document vers mes fichiers de développement :
[[email protected] html]# ls -l
total 4
-rwxrwxrwx. 1 root root 0 Sep 18 20:16 index.html
-rwxrwxrwx. 1 root root 17 Sep 18 20:16 index.php
lrwxrwxrwx. 1 root root 24 Sep 18 20:19 refresh-app -> /home/billy/refresh-app/
Mon httpd.conf contient ceci :
<Directory "/">
Options All
AllowOverride None
Order allow,deny
Allow from all
</directory>
La cible du lien symbolique a des permissions qui devraient permettre à apache de lire tout ce qu'il veut :
[[email protected] billy]# ls -l
total 40 (Some entries were omitted because the list was too long
drwxr-xr-x. 7 billy billy 4096 Sep 18 20:03 refresh-app
J'ai également essayé de désactiver SELinux en modifiant /etc/selinux/conf
:
SELINUX=disabled
Pourtant, peu importe ce que je fais, quand quelqu'un essaie d'accéder à ce lien, http://localhost/refresh-app/
, j'obtiens une page d'erreur 403 FORBIDDEN et ceci est écrit dans le /var/log/httpd/error_log
:
Symbolic link not allowed or link target not accessible
Pourquoi Apache ne peut-il pas accéder à la cible du lien symbolique ?
Réponse acceptée :
Trouvé le problème. Il s'avère qu'Apache veut accéder non seulement au répertoire que je sers, /home/billy/refresh-app/
, mais aussi tous les répertoires au-dessus, à savoir /home/billy/
, /home
, et /
. (Je ne sais pas pourquoi… donner à quelqu'un l'accès à un sous-répertoire ne devrait pas nécessiter de donner des autorisations à tout ce qui se trouve au-dessus de ce sous-répertoire….)
Je suppose qu'il recherche .htaccess
ou quelque chose, ou peut-être que *nix est étrange sur la façon dont il traite les autorisations pour les répertoires transversaux.