Pages : 1
#1 Le 31/01/2008, à 18:03
- guiguivts
[php] fopen
Bonjour,
J'ai un serveur apache sur un ubuntu 7.10. J'ai un fichier php dessus qui utilise fopen pour ecrire sur un fichier (par exemple config qui se trouve dans un sous dossier de www donc)
Le problème est que le propriétaire du sous dossier et du fichier config en question est par exemple mathieu et lorsque je lance mon script php via un navigateur je suis l'utilisateur www-data et j'ai donc droit à un message comme quoi je n'ai pas la permission d'ouvrir mon fichier config via fopen.
J'aimerais savoir comment régler ce problème ?
Bien sûr un chmod sur ce fichier règle le problème. De même je n'ai pas essayé mais si je change l'utilisateur www-data d'apache par mathieu cela doit fonctionner aussi je pense.
Seulement pour des raisons un peu compliquées (application distribuée etc) je souhaiterai en gros qu'il n'y aie aucune intervention de l'utilisateur (donc pas de chmod chown etc)
J'ai cherché à faire un system('chmod 777 config') avant le fopen mais ça ne fonctionne pas.
Existe t'il quelque chose qui pourrai me faire ça ? ça fait déjà pas mal de temps que je galère la dessus..
Merci d'avance
Hors ligne
#2 Le 31/01/2008, à 18:46
- stopher
Re : [php] fopen
En gros si j'ai bien compris , tu veux ecrire sur un fichier qui n'appartient pas à www-data , et ce sans toucher au propriétaires ni modifier les groupes auquels appartient www-data ?
Et bien , c pas evident , sauf peut etre de passer par un fichier temporaire ..
Si tu as acces en lecture à ce fichier , tu le copie dans un autre appartenant à ww-data , puis tu travails uniquement sur ce dernier ...
A tester ...
Hors ligne
#3 Le 31/01/2008, à 18:57
- guiguivts
Re : [php] fopen
Je veux bien changer de propriétaires mais si possible que ça se fasse dans le code...
J'ai essayé des exec(chmod 777 config) mais ça ne fonctionne pas.
J'ai aussi essayé de supprimer le fichier config et que ça soit le fopen qui le crée. Mais dans ce cas le fichier config qui est créé appartient donc au propriétaire www-data. Et donc un autre fichier ne peut pas faire de require dessus (ce qui est le but en fait..)
je galere
Hors ligne
#4 Le 31/01/2008, à 19:02
- stopher
Re : [php] fopen
seul le propriétaire ou root est autorisé à modifier les droits ...
donc si tu crees un nouveau fichier avec www-data , là tu peux modifier les droits de ce fichier sans probleme ..
Dernière modification par stopher (Le 31/01/2008, à 19:03)
Hors ligne
#5 Le 31/01/2008, à 19:06
- guiguivts
Re : [php] fopen
Oui c'est ce que je me suis dit
Le seul problème c'est que maintenant je ne peux même plus créer de fichier même si celui ci n'existe pas !
Pourtant il me semblait que ça ça marchait à un moment
On peut créer un fichier dans un repertoire dont on n'est pas le propriétaire ?
Hors ligne
#6 Le 31/01/2008, à 19:10
- stopher
Re : [php] fopen
par defaut :
drwxr-xr-x 3 root root 4096 2008-01-25 07:58 www
seule root peut ecrire dans www... apres si ton "site" se trouve dans un répertoire à l'intérieur de www , appartenant à www-data , alors tu pourras écrire à l'intérieur de celui-ci
Hors ligne
#7 Le 31/01/2008, à 19:24
- guiguivts
Re : [php] fopen
Bon alors mon "site" a comme propriétaire mathieu ce qui est bizarre c est que les autres sont en www-data
Je vais continuer à chercher la dessus mais qu'est ce que c'est chiant..
Hors ligne
#8 Le 31/01/2008, à 19:53
- guiguivts
Re : [php] fopen
Bon j'ai trop trop de problèmes de droits.. Y'a pas plus chiant que ce truc j'en peux plus..
Le but c'est de stocker les résultats d'un formulaire dans un fichier config pour que d'autres fichiers puissent faire un require sur ce fichier. Mais viseblement ça veut rien savoir...
Hors ligne
#9 Le 31/01/2008, à 20:16
- guiguivts
Re : [php] fopen
J'ai également vu que l'on pouvait spécifier avec quel compte utilisateur était lancer apache.
Où peut on voir ça ?
Et sinon mon httpd.conf est vide... étrange non..?
bye merci
Hors ligne
#10 Le 01/02/2008, à 12:53
- guiguivts
Re : [php] fopen
Hors ligne
#11 Le 01/02/2008, à 13:41
- stopher
Re : [php] fopen
Le but c'est de stocker les résultats d'un formulaire dans un fichier config pour que d'autres fichiers puissent faire un require sur ce fichier. Mais viseblement ça veut rien savoir...
pourquoi tu n'utilises pas un fichier XML pour gerer tes paramètres ?
Et donnes nous ton arborescence ls -lR
Pour voir exactement ce qui ne va pas ...
Car modifier l'utilisateur d'apache n'est pas vraiment une bonne idée ..
Hors ligne
#12 Le 01/02/2008, à 13:53
- guiguivts
Re : [php] fopen
Salut,
Alors j'ai essayer de modifier l'utilisateur d'apache, en effet c'est pas une bonne idée
Ce que je voulais faire précisemment ça marchait mais alors tout le reste ne marchait plus (phpmyadmin...)
Donc du coup la j'ai réussi à faire ce que je voulais en faisant chmod 777 sur mon dossier avant l'écriture sur le fichier config (que je crée avant du coup)
ça fonctionne mais je suis bien conscient que c'est pas terrible !!
Si vous avez d'autre idée vous pouvez
Pour le fichier xml ça va changer quoi en terme de droit ? car oui ça doit être possible je connais pas très bien mais ça s'apprend. Mais je suis pas sûr que ça règle mon problème.
Je suis pas sur mon pc là je peux pas te donner le résultat de la commande.
Bye et merci
Hors ligne
#13 Le 01/02/2008, à 13:59
- Coolgeek
Re : [php] fopen
ton fichier config a comme proprio "mathieu" et a comme groupe "mathieu" aussi je suppose ?
si oui, essaye de rajouter www-data dans le groupe de mathieu et mettre les droit de lecture/ecriture pour le groupe.
Hors ligne
#14 Le 01/02/2008, à 14:12
- stopher
Re : [php] fopen
Le fichier XML , c'est plus pour un coté pratique et performant .. apres c'est une affaire de gout ...:D
@Coolgeek:
En effet c'est une solution mais a voir ca ne va pas lui convenir car :
Bien sûr un chmod sur ce fichier règle le problème. De même je n'ai pas essayé mais si je change l'utilisateur www-data d'apache par mathieu cela doit fonctionner aussi je pense.
Seulement pour des raisons un peu compliquées (application distribuée etc) je souhaiterai en gros qu'il n'y aie aucune intervention de l'utilisateur (donc pas de chmod chown etc)
Hors ligne
#15 Le 01/02/2008, à 18:18
- guiguivts
Re : [php] fopen
Y'a pas grand chose dans mon fichier de config. Juste les paramètres d'accès à une bd. Sinon j'ai vu avec mon prof, le chmod n'est pas trop génant à priori donc je crois que je vais me contenter de ça.
ça fait 48h que je cherche comment le faire sans aucune intervention mais là je crois que je vais "abandonner" et garder la solution du chmod
Merci pr les explications, bye
Hors ligne
Pages : 1