PHP et Permissions [Résolu/Fermé]

Signaler
Messages postés
37
Date d'inscription
lundi 7 septembre 2015
Statut
Membre
Dernière intervention
17 septembre 2017
-
Messages postés
29267
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
30 juillet 2020
-
Bonjour tout le monde,

Je rencontre un petit problème, *très énervant*, avec PHP.

Voilà, je vous expose la situation. Mon code PHP est programmé pour créer un fichier dans localhost (/var/www/html/). Sauf que, pour une raison obscure, il n'a pas la permission pour écrire dans ce fichier, malgré un "# chown -R user:user /var/www/html" (user a été évidemment changé par le nom de mon utilisateur). J'en ai donc déduis qu'en m’octroyant les droit sur ce fichier, PHP n'y aurais quand même pas accès. Puis j'ai mis SELinux en permissive, vu qu'il me bombardait d'alerte de sécurité empêchant PHP de créer des fichier et que ses "solutions" ne marchait guère. J'ai aussi essayer de trouver la liste des utilisateurs pour permettre PHP d'accéder à html/ mais je-ne-sais-pourquoi l'application "Utilisateurs et groupes" ne se lance pas. Vous vous doutez donc que si je m'adresse à vous aucune de ces solution n'a donné de résultats.

1 réponse

Messages postés
29267
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
30 juillet 2020
6 899
Bonjour,

Si user n'est pas
www-data
(l'utilisateur utilisé pour lancer apache), il est normal que apache ne parvienne pas à écrire dans /var/www/html puisque ce fichier ne lui appartient pas.

Mais de toute façon, ce n'est pas la bonne approche. Si tu attribues ces fichiers à www-data, potentiellement n'importe qui peut modifier grâce à apache les fichiers qui se situe dans localhost et peut commencer à faire n'importe quoi.

Si tu as besoin d'écrire un fichier temporaire avec php, il serait mieux d'utiliser des fonction comme tmpfile. Si les données en question sont structurées, une base de données est également un bon endroit pour stocker des données extérieures.

Bonne chance
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 58236 internautes nous ont dit merci ce mois-ci

Messages postés
37
Date d'inscription
lundi 7 septembre 2015
Statut
Membre
Dernière intervention
17 septembre 2017

Oups, désolé, j'ai oublié de mettre à jour le forum, mais, grâce à mon frère, j'ai débloqué la situation.
Si vous êtes tomber sur le même problème que moi :
# chown -R apache:apache /votrefichier
# chmod -R 777 /votrefichier
Messages postés
29267
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
30 juillet 2020
6 899
Attention ton frère t'a donné une solution que je ne recommande pas :

- mettre des droits 777 est toujours une mauvaise idée : n'importe qui peut potentiellement modifier ou supprimer ces fichiers. Typiquement mieux vaudrait choisir 660 pour un fichier ou 770 pour un dossier.

- le propriétaire/groupe propriétaire attendu est plutôt
www-data
(du moins sur les systèmes debian-like, peut-être qu'
apache
est le bon sous fedora). Ici aussi mettre un mauvais propriétaire / groupe propriétaire peut être risqué.

- En l'occurrence, si tu veux écrire des fichiers temporaires, comme dit précédemment
tmpfile
est une bonne solution, créer un dossier dans lequel l'utilisateur qui lance apache a des droits en écriture est une autre possibilité.

Bonne chance