Comme indiqué plus haut :
- Vos commandes ont l'air correctes, donc je pense qu'il y a un problème avec les hypothèses qui entourent ce que vous faites.
- assurez-vous que l'utilisateur et le groupe apache s'appellent "apache" et non "apache2", "httpd" ou "www-data" ou un autre nom de ce type.
- chmod -R 770 met le bit d'exécution sur les répertoires y dans ces répertoires. Vous ne devez mettre le bit "x" que sur les répertoires pour permettre le dir-traversal.
si vous voulez exclure tous les utilisateurs du groupe "users" de l'accès au répertoire "upload", vous pouvez attribuer ce répertoire explicitement au groupe "users" et ensuite définir des autorisations de groupe restrictives :
# group permissions override permissions for "others"
chown -R www-data:users /mydir
# group has no permissions, "others" can read and traverse
chmod 0705 /mydir
# change permissions on subdirs only
find /mydir -type d -exec chmod 0705 {} \;
# files should by default not be executeable anyway
find /mydir -type f -exec chmod a-x,o-w {} \;
Si vous voulez trouver l'utilisateur apache, faites (sur linux seulement)
ps axu | grep apache | grep -v root
et regardez la colonne la plus à gauche. Remplacez peut-être apache par httpd dans la commande grep. Merci,
Nik.
0 votes
Vous pouvez essayer
chown
pourapache:apache
aussi1 votes
Vous ne voulez vraiment pas rendre exécutable tout ce qui se trouve sous votre répertoire uploads ; vous ne voulez que la permission d'exécuter sur les répertoires.