J'ai un problème de permissions de fichiers qui me rend fou. J'ai une application web en Perl qui s'installe toute seule, en copiant quelques fichiers, en créant une base de données, etc. Tout fonctionne bien, à l'exception de quelques fichiers images. Ces images ne sont pas accessibles par Apache :
(13) Permission denied: access to /path/to/image.gif denied
Mais le fichier est 644. J'ai essayé le chmod 777, et le chown vers l'utilisateur Apache, sans résultat positif.
Et ce qui me rend fou : si je copie le fichier, puis renomme l'ancien fichier et renomme le nouveau fichier, cela fonctionne !
mv image.gif image.gif.bak
cp image.gif.bak image.gif
Les fichiers sont identiques, de même taille, avec les mêmes autorisations, le même propriétaire et le même groupe. Je peux voir les deux dans une visionneuse d'images. Mais si je restaure le fichier d'origine (en supprimant le "nouveau" fichier et en renommant l'"ancien" fichier à son nom d'origine), j'obtiens à nouveau un "permission denied" (autorisation refusée) :
rm image.gif
mv image.gif.bak image.gif
Ce problème se produit avec tous les fichiers images, mais pas avec les fichiers textes (html statique, css...).
Quelle peut être la cause de ce comportement étrange ?
J'utilise Apache 2.2.3 sous CentOs 5.5. Les scripts Perl (Perl 5.8.8) fonctionnent avec Suexec.