Menu

PHP et Permissions [Résolu]

Nintendotesteurl 37 Messages postés lundi 7 septembre 2015Date d'inscription 17 septembre 2017 Dernière intervention - 15 août 2017 à 05:06 - Dernière réponse : mamiemando 28451 Messages postés jeudi 12 mai 2005Date d'inscriptionModérateurStatut 19 juillet 2018 Dernière intervention
- 17 août 2017 à 22:48
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.

Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
mamiemando 28451 Messages postés jeudi 12 mai 2005Date d'inscriptionModérateurStatut 19 juillet 2018 Dernière intervention - 16 août 2017 à 10:24
1
Merci
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

Merci mamiemando 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22497 internautes ce mois-ci

Nintendotesteurl 37 Messages postés lundi 7 septembre 2015Date d'inscription 17 septembre 2017 Dernière intervention - 16 août 2017 à 19:33
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
mamiemando 28451 Messages postés jeudi 12 mai 2005Date d'inscriptionModérateurStatut 19 juillet 2018 Dernière intervention - 17 août 2017 à 22:48
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
Commenter la réponse de mamiemando