Problème appel script bash depuis php

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


Gons
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 21 Mai 2011

Problème appel script bash depuis php

Message le Jeu Juin 09, 2011 11:07

Bonjour à tous !

J'ai un problème et malgré plusieurs heures à tourner dessus, à lire et lire sur le net, je ne comprends pas...

J'ai réalisé un script bash qui fonctionne très bien quand je le lance via ssh sur mon serveur. Je lui ai donné les droit chmod 777.
Pourtant ma page php avec exec('sh /home/le/chemin/vers/mon/script/script.sh'); ne fonctionne pas...

Si je remplace par exec('une commande a executer'), la commande est bien exécutée ?

D'où peut venir le problème ?

Merci pour votre aide !

DeLoVaN
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 37
Inscription: 8 Juin 2011

Re: Problème appel script bash depuis php

Message le Jeu Juin 09, 2011 11:28

Ca ne fonctionne pas... Tu as un message d'erreur quelconque à nous transmettre ?
Ton script marche en console ?
Et si tu remplace sh par /bin/sh (voire /bin/bash) ?


Gons
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 21 Mai 2011

Re: Problème appel script bash depuis php

Message le Jeu Juin 09, 2011 11:42

DeLoVaN a écrit:Ca ne fonctionne pas... Tu as un message d'erreur quelconque à nous transmettre ?
Ton script marche en console ?
Et si tu remplace sh par /bin/sh (voire /bin/bash) ?


Aucun message d'erreur. Le script ne s'exécute pas. Comment pourrais-je en connaître la cause ?
Sinon avec /bin/sh et /bin/bash ça change rien. Il fonctionne en console.


e-kiwi
Modérateur
Modérateur
 
Messages: 15618
Inscription: 23 Déc 2003

Re: Problème appel script bash depuis php

Message le Jeu Juin 09, 2011 11:43

>> Comment pourrais-je en connaître la cause ?
dans les logs apache ?


Gons
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 21 Mai 2011

Re: Problème appel script bash depuis php

Message le Jeu Juin 09, 2011 11:59

e-kiwi a écrit:>> Comment pourrais-je en connaître la cause ?
dans les logs apache ?

voilà :

Code: Tout sélectionner
sh: Can't open /home/blabla/blabla.sh
/bin/sh: Can't open /home/blabla/blabla.sh
/bin/bash: /home/blabla/blabla.sh: Permission denied

passion
WRInaute accro
WRInaute accro
 
Messages: 3125
Inscription: 6 Jan 2006

Re: Problème appel script bash depuis php

Message le Jeu Juin 09, 2011 12:19

il semblerait que le user qui va lancer le script bash n'est pas les droits suffisants !


Gons
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 21 Mai 2011

Re: Problème appel script bash depuis php

Message le Jeu Juin 09, 2011 13:50

passion a écrit:il semblerait que le user qui va lancer le script bash n'est pas les droits suffisants !


Après avoir changer mon script de groupe (www-data) et l'avoir mis dans /var/www/chemin/vers/mes/scripts/web
Il accède bien au script.

Cependant, certaines actions à l'intérieur de mon script ne peuvent être exécutées par manque de droits.
J'ai pourtant fait certaines démarches indiquées ici :

Code: Tout sélectionner
www-data ALL=(ALL) NOPASSWD: /var/www/chemin/vers/mes/scripts/web/script.sh


Dans /etc/sudoers avec visudo

et
Code: Tout sélectionner
/etc/init.d/sudo restart
pour être sûr (j'ai même redémarré apache2)

Je n'ai toutefois toujours pas les permissions pour effectuer certaines commandes de mon script :(

Voilà les erreurs (pour les fichiers qui n'existent pas, c'est normal puisque mon script devait les créer)

Code: Tout sélectionner
tar: applicationparameters.txt: Cannot open: Permission denied
tar: seasoninfo.txt: Cannot open: Permission denied
tar: levelinfo.txt: Cannot open: Permission denied
tar: playercategories.txt: Cannot open: Permission denied
tar: clubs.txt: Cannot open: Permission denied
tar: venues.txt: Cannot open: Permission denied
tar: players.txt: Cannot open: Permission denied
tar: fixtures.txt: Cannot open: Permission denied
tar: tournaments.txt: Cannot open: Permission denied
tar: matchtypes.txt: Cannot open: Permission denied
tar: calenderdates.txt: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
mv: cannot stat `players.txt': No such file or directory
rm: cannot remove `*.txt': No such file or directory
rm: cannot remove `db-20110607.tabt': Permission denied
/var/www/infoping/scripts/maj_affilies_fr.sh: 18: cannot open /var/www/infoping/scripts/affilies/players.txt: No such file
rm: cannot remove `*.txt': No such file or directory
/var/www/infoping/scripts/maj_affilies_fr.sh: 21: cannot create joueurs.csv: Permission denied
cat: joueurs2.csv: No such file or directory
rm: cannot remove `joueurs2.csv': No such file or directory
sed: can't read joueurs.csv: No such file or directory
ERROR 2 (HY000) at line 1: File '/var/www/infoping/scripts/affilies/joueurs.csv' not found (Errcode: 2)
rm: cannot remove `/var/www/infoping/scripts/affilies/*': No such file or directory

_Soul
WRInaute impliqué
WRInaute impliqué
 
Messages: 505
Inscription: 26 Avr 2011

Re: Problème appel script bash depuis php

Message le Jeu Juin 09, 2011 15:15

Si ta un ../xxx dans ton script sa ne fonctionnera pas, il faut des chemins "direct".

Sinon tu dois pas éditer tes fichiers en root, fais un sudo avant, essaye en fessant exec('sudo /home/le/chemin/vers/mon/script/script.sh');

Bonne chance ;)


Gons
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 21 Mai 2011

Re: Problème appel script bash depuis php

Message le Jeu Juin 09, 2011 15:34

_Soul a écrit:Si ta un ../xxx dans ton script sa ne fonctionnera pas, il faut des chemins "direct".

Sinon tu dois pas éditer tes fichiers en root, fais un sudo avant, essaye en fessant exec('sudo /home/le/chemin/vers/mon/script/script.sh');

Bonne chance ;)

Les chemins sont directs. Avec sudo :

Code: Tout sélectionner
sudo: no tty present and no askpass program specified

_Soul
WRInaute impliqué
WRInaute impliqué
 
Messages: 505
Inscription: 26 Avr 2011

Re: Problème appel script bash depuis php

Message le Jeu Juin 09, 2011 18:06

Si dans le script tu fais juste un 'touch plop' sa fonctionne?

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2686
Inscription: 13 Fév 2004

Re: Problème appel script bash depuis php

Message le Jeu Juin 09, 2011 18:20

Euuuuh... Tu es certain que tu n'as pas un autre moyen d'arriver à faire ce que tu veux? Lancer un script bash avec des droits root depuis un script php, ça me paraît horriblement dangereux. Tu as intérêt à très sérieusement bien vérifier tout ce que tu passe à ton script, et plutôt deux fois qu'une!

Jacques.


Gons
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 21 Mai 2011

Re: Problème appel script bash depuis php

Message le Ven Juin 10, 2011 10:50

_Soul a écrit:Si dans le script tu fais juste un 'touch plop' sa fonctionne?

Voilà la réponse :( :
Code: Tout sélectionner
touch: cannot touch `plop': Permission denied


jcaron a écrit:Euuuuh... Tu es certain que tu n'as pas un autre moyen d'arriver à faire ce que tu veux? Lancer un script bash avec des droits root depuis un script php, ça me paraît horriblement dangereux. Tu as intérêt à très sérieusement bien vérifier tout ce que tu passe à ton script, et plutôt deux fois qu'une!

Jacques.

Cette page php est une page d'administration accessible uniquement par moi via mot de passe. De plus mon script bash ne prend aucun paramètre. Il télécharge un fichier sur un site distant et met à jour ma BDD.

DeLoVaN
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 37
Inscription: 8 Juin 2011

Re: Problème appel script bash depuis php

Message le Ven Juin 10, 2011 12:59

Balance un petit chmod 777 pour vérifier. Tu es sur de passer avec le www-data ? Tu n'utilise pas suexec ou suphp par ex ?


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Re: Problème appel script bash depuis php

Message le Ven Juin 10, 2011 15:01

Gons a écrit:
_Soul a écrit:Si dans le script tu fais juste un 'touch plop' sa fonctionne?

Voilà la réponse :( :
Code: Tout sélectionner
touch: cannot touch `plop': Permission denied


T'as tenté avec le chemin absolu ?
/home/tonsite/www/plop ?
Car là "plop" ça sera ptete dans /usr/sbin/

jcaron a écrit:Euuuuh... Tu es certain que tu n'as pas un autre moyen d'arriver à faire ce que tu veux? Lancer un script bash avec des droits root depuis un script php, ça me paraît horriblement dangereux. Tu as intérêt à très sérieusement bien vérifier tout ce que tu passe à ton script, et plutôt deux fois qu'une!

Jacques.


Je suis un peu d'accord avec jcaron.
A mon niveau j'avais fraudé avec un :
"on écrit exactement ce qu'on veut dans un fichier .txt, un cron execute ce script (si présent)".

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2686
Inscription: 13 Fév 2004

Re: Problème appel script bash depuis php

Message le Ven Juin 10, 2011 18:37

Gons a écrit:Cette page php est une page d'administration accessible uniquement par moi via mot de passe. De plus mon script bash ne prend aucun paramètre. Il télécharge un fichier sur un site distant et met à jour ma BDD.


Ce qui m'amène les questions suivantes:
- pourquoi ne pas faire tout ça directement en php?
- quel besoin d'exécuter ça avec des droits root?

Jacques.

Problème appel script bash depuis php

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité