PHP et Permissions

Résolu/Fermé
Nintendotesteurl Messages postés 37 Date d'inscription lundi 7 septembre 2015 Statut Membre Dernière intervention 17 septembre 2017 - 15 août 2017 à 05:06
mamiemando Messages postés 33352 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 novembre 2024 - 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.

A voir également:

1 réponse

mamiemando Messages postés 33352 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 novembre 2024 7 804
16 août 2017 à 10:24
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
Nintendotesteurl Messages postés 37 Date d'inscription lundi 7 septembre 2015 Statut Membre Dernière intervention 17 septembre 2017
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
0
mamiemando Messages postés 33352 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 novembre 2024 7 804
Modifié le 17 août 2017 à 22:49
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
0