|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 5 ![]() |
Bonjour,
Je travaille actuellement sur un projet de réponse automatique de mail sur un serveur Linux. J'ai pour mission de réutiliser un bash qui créait automatiquement un fichier ".procmailrc" dans /home/NomUtilisateur/ mais qui ne se faisait qu'en ligne de commandes.. Grâce à un formulaire fait en PHP je récupère les informations nécessaires puis tente de créer ce fichier en appelant ce bash au préalable modifié. Lorsque j’exécute ce nouveau bash en ligne de commande tout fonctionne mais lorsque je l'appelle depuis mon fichier PHP, rien ne se passe, le fichier ".procmailrc" n'est pas créé et je n'ai pas de message d'erreur.. Le problème venant peut être des droits qui m'étaient accordés on m'a mis en administrateur, mais pareil, impossible de le créer. Après quelques recherches sur internet on à essayé plusieurs solutions comme changer les droits de lecture/écriture/exécution de chaque dossier avec un "chmod 777" mais rien ne se passe et ça pourrait laisser de grosses failles de sécurité sur le réseau... Ça va bientôt faire deux jours entiers qu'on planche sur le sujet sans jamais trouvé de solutions concrète et qui fonctionne, à notre problème... La question est simple : Comment faire pour accorder les droits au PHP de créer un fichier dans /home/NomUtilisateur ? C'est pourquoi je fais appelle à vous, si jamais vous avez une petite idée sur la question ça me ferait extrêmement plaisir de pouvoir l'essayer En espérant avoir été assez précis, merci d'avoir lu. Dev_elop |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 26 ![]() |
PHP est exécuté avec les droits de l'utilisateur qui le lance, logique.
Si tu le lance a partir d'un serveur web, c'est au serveur web qu'il faut que tu attribue les droits. Accessoirement, l'erreur serait visible dans les logs du serveur web. |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 5 ![]() |
Tout d'abord merci delovan pour cette première réponse =)
Effectivement, dans les logs du serveur web il y a bien marqué que la permission est de le crée est non autorisé. Cependant je n'ai aucune idée de la manipulation à faire pour changer cette permission. Pourrais-tu m'éclairer sur ce point s'il te plait ? Merci d'avance. Dev_elop |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 26 ![]() |
Utilises-tu Apache ?
Si c'est le cas, on parle donc de l'utilisateur www-data. Plusieurs solutions à partir de là, par exemple, faire un chown www-data du dossier ou tu compte écrire, et avoir des droits en 7XX, ou X représente ce que tu veux. |
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 5 ![]() |
Oui, je suis sous Apache.
Ce qui me gène le plus c'est de faire un chown sur les sous répertoires de /home. Est ce que ça pose des problème de sécurité ? |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 26 ![]() |
Ah, j'avais mal lu, pas vu qu'on parlait de /home/~user
Tu peux attribuer à ces répertoires utilisateurs les droits d'écriture du groupe (donc 775), et ajouter www-data en groupe secondaire pour tes utilisateurs (man usermod ou modifier directement le /etc/group) |
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 5 ![]() |
Merci pour tous ces éléments de réponses.
Grâce à tes indications je tente tant bien que mal à résoudre ce problème... J'y passerais peut être la journée mais j'y arriverais ! ^^ Je viendrais peut être reposer d'autres question sur ce sujet mais je vais déjà bien me documenter. |
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : juin 2011 Messages : 5 ![]() |
Tout d'abord désolé pour ce double post...
Je comprend vraiment pas pourquoi ça ne fonctionne pas, ça a pourtant l'air d'être si simple... Le premier soucis que je rencontre c'est lorsque vous parlez de "www-data", ça peut paraitre stupide mais je me demande vraiment a quoi vous pensez en disant ça... Pour le moment ce que j'ai fait c'est créer un groupe "A" qui a comme utilisateur les clients FTP. (situé en /usr/local/www/FTP_NomUtilisateur) Chaque dossier /home/NomUtilisateur sont en "drwxrwxr-x" avec en propriétaire le "NomUtilisateur" et en groupe "A". Ce qui, si j'ai bien compris ferais quelque chose du genre : 1) Mon client FTP_NomUtilisateur est dans le groupe "A". 2) Il cherche a accéder à /home/NomUtilisateur gràce à son appartenance au groupe "A". 3) Echec... Dans mon error_log j'ai : Citation:
Citation:
|
||
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 26 ![]() |
Désolé du temps de réponse, j'avais piscine ce week-end.
www-data est l'utilisateur qui fait tourner Apache, par défaut. Vos modifications sont bonnes, il suffit juste de rajouter l'utilisateur www-data au groupe A (en groupe secondaire), et ce sera bon ! |
|
00
|
Copyright © 2000-2012 - www.developpez.com