Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 ? smile

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.. sad

Merci d'avance smile

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 sad

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 smile

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 roll

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

smile

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 tongue

Ce que je voulais faire précisemment ça marchait mais alors tout le reste ne marchait plus big_smile (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 wink

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 wink

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