Executer un script shell avec apache
Fermé
maxabi
Messages postés
20
Date d'inscription
mardi 26 octobre 2004
Statut
Membre
Dernière intervention
30 janvier 2009
-
27 déc. 2008 à 10:40
fredoubiz Messages postés 10 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 22 janvier 2010 - 22 janv. 2010 à 17:44
fredoubiz Messages postés 10 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 22 janvier 2010 - 22 janv. 2010 à 17:44
A voir également:
- Executer un script shell avec apache
- Script vidéo youtube - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Apache open office gratuit - Télécharger - Suite bureautique
- Microsoft activation script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
5 réponses
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
5 janv. 2009 à 18:50
5 janv. 2009 à 18:50
As tu rajouté sudo devant ta commande ?
J'ai testé avec /etc/init.d/ssh et ça marche chez moi.
<?php $ligne = system('sudo /etc/init.d/smsicomd stop '); echo $ligne.'<br>'; $ligne1 = system(sudo etc/init.d/'smsicomd start'); echo $ligne1; ?>
J'ai testé avec /etc/init.d/ssh et ça marche chez moi.
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
27 déc. 2008 à 18:38
27 déc. 2008 à 18:38
Salut,
tu as sans doute un problème de droit d'exécution :
- ton script PHP s'exécute en tant qu'utilisateur www-data
- ton script shell à besoin des droits super utilisateur pour lancer les application situées dans /usr/local/sbin
Tu peut modifier le fichier de config /etc/sudoers pour autoriser l'exécution de ce programme par www-data en tant que root.
tu as sans doute un problème de droit d'exécution :
- ton script PHP s'exécute en tant qu'utilisateur www-data
- ton script shell à besoin des droits super utilisateur pour lancer les application situées dans /usr/local/sbin
Tu peut modifier le fichier de config /etc/sudoers pour autoriser l'exécution de ce programme par www-data en tant que root.
maxabi
Messages postés
20
Date d'inscription
mardi 26 octobre 2004
Statut
Membre
Dernière intervention
30 janvier 2009
29 déc. 2008 à 11:25
29 déc. 2008 à 11:25
merci a toi flash joe, je suis autodidacte . parait que c chmod 755 donne tous les droits au superuser?
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
>
maxabi
Messages postés
20
Date d'inscription
mardi 26 octobre 2004
Statut
Membre
Dernière intervention
30 janvier 2009
29 déc. 2008 à 12:51
29 déc. 2008 à 12:51
Lit cette doc : http://howto.monserveurperso.com/guide.andesi.org/ksudo.html#AEN6525
Ne modifie pas les droits sur les fichiers contenu dans /usr/local/sbin avec chmod, ils ne doivent être exécutable que par root. C'est grâce à ce genre de verrouillage que linux est plus sécurisé que windows...
Ne modifie pas les droits sur les fichiers contenu dans /usr/local/sbin avec chmod, ils ne doivent être exécutable que par root. C'est grâce à ce genre de verrouillage que linux est plus sécurisé que windows...
maxabi
Messages postés
20
Date d'inscription
mardi 26 octobre 2004
Statut
Membre
Dernière intervention
30 janvier 2009
29 déc. 2008 à 18:32
29 déc. 2008 à 18:32
infiniment merci, mais flachy joe je me cherche toujours. je rafraichi mon pb.
en ligne de commande , notre serveur réagit normalment à la commande ki lui est envoyé. je rapel que le script qui régit cette commande est de type shell(donc un CGI , si je me trompe rectifier moi). Apache que j'utilise heberge index.php qui est censé , à la demande permettre d'administrer notre serveur comme on pourrait le faire à partir de la ligne de commande. tous ces scripts se trouvent au sein de mon 1er message.je me demande parfois aussi si apache est bien configurer pour bien interpréter les CGI, ou si c le code php ki n'est pas assez argumenté, ou comme l'a dit joe c un bleme de droit d'accès. Mais, mon probleme secondaire est que je sais pas aussi me prendre pour ces autorisation.
PS: mon script shell se trouve dans un repertoire du type /usr/local/sbin
j'ai aussi essayé de le recopier ds /var/www/cgi-bin et lorsque je lance la requête appelant le fichier il s'affiche tel kel.
mais lorsque je fais appel a mon code php ki était censé changer le status du serveur déja démarré en ligne de commande, il affiche ke soit le serveur a changé d'état ( arrêté, redémarré,..)mais en réalité non.
merci par avance
en ligne de commande , notre serveur réagit normalment à la commande ki lui est envoyé. je rapel que le script qui régit cette commande est de type shell(donc un CGI , si je me trompe rectifier moi). Apache que j'utilise heberge index.php qui est censé , à la demande permettre d'administrer notre serveur comme on pourrait le faire à partir de la ligne de commande. tous ces scripts se trouvent au sein de mon 1er message.je me demande parfois aussi si apache est bien configurer pour bien interpréter les CGI, ou si c le code php ki n'est pas assez argumenté, ou comme l'a dit joe c un bleme de droit d'accès. Mais, mon probleme secondaire est que je sais pas aussi me prendre pour ces autorisation.
PS: mon script shell se trouve dans un repertoire du type /usr/local/sbin
j'ai aussi essayé de le recopier ds /var/www/cgi-bin et lorsque je lance la requête appelant le fichier il s'affiche tel kel.
mais lorsque je fais appel a mon code php ki était censé changer le status du serveur déja démarré en ligne de commande, il affiche ke soit le serveur a changé d'état ( arrêté, redémarré,..)mais en réalité non.
merci par avance
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
5 janv. 2009 à 14:20
5 janv. 2009 à 14:20
Voila comment faire en sorte que ta commande soit lancée avec les droit superuser :
1. Installe sudo sur le serveur
2. Édite le fichier /etc/sudoers avec la commande visudo
3. Déplace ton script smsicomd dans /etc/init.d puis fait en root
4. Tes appels à ce script se feront maintenant automatiquement en tant que root et ne demanderont pas de mot de passe.
1. Installe sudo sur le serveur
su apt-get install sudo
2. Édite le fichier /etc/sudoers avec la commande visudo
# /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. # Defaults env_reset # Host alias specification # User alias specification # Cmnd alias specification Cmnd_Alias REBOOT = /etc/init.d/smsicomd # User privilege specification root ALL=(ALL) ALL www-data NOPASSWD: REBOOT
3. Déplace ton script smsicomd dans /etc/init.d puis fait en root
cd /etc/init.d chown root smsicomd chmod 700 smsicomd
4. Tes appels à ce script se feront maintenant automatiquement en tant que root et ne demanderont pas de mot de passe.
maxabi
Messages postés
20
Date d'inscription
mardi 26 octobre 2004
Statut
Membre
Dernière intervention
30 janvier 2009
>
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
5 janv. 2009 à 18:18
5 janv. 2009 à 18:18
merci pour ta disponibilité, en fait je l'ai fait , mais lorsque je demande a travers un naviguateur le fichier en php qui est censé exécuter par exemple la commande smsicomd restart, il m'affiche que le serveur smsicom a restart ,mais en réalité en ligne de cmd le status du serveur smsicom indique qu'il a gardé son statu d'avant . je rappel ke mon fichier en php est logé ds /var/www/php/ , j'ai mêm essayé de placé le script shell de smsicomd ds ce repertoire , mais jai tjrs rien.
j'ai aussi essayé de le placer dans /var/www/cgi-bin/ dont je constate que j'ai pas accès .
merci
j'ai aussi essayé de le placer dans /var/www/cgi-bin/ dont je constate que j'ai pas accès .
merci
j'ai exactement le meme problème que toi, j'ai passer des heures à essayer de trouver la solution mais pas moyen. Je sais juste envoyer des commandes de bases (ls,cd etc).Si tu as trouvé la solution pourrait tu l'as poster.
meric d'avance
meric d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fredoubiz
Messages postés
10
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
22 janvier 2010
22 janv. 2010 à 17:44
22 janv. 2010 à 17:44
Bonjour , moi je cherche à lancer un script shell en même temps qu'apache(qui contient le lancement de mes processus www-data à lancé) qui relancerais les applis web au reboot d'apache.
6 janv. 2009 à 13:38
root ALL=(ALL) ALL,
même commenté l'erreur subsiste.
Je me pose aussi la question de savoir s'il était encore nécessaire de préciser cette ligne pour le super user.
6 janv. 2009 à 13:50
Pour l'explication :
Cmnd_Alias définie une liste de commande qui sera valable pour le reste de la config, ici on définie la liste REBOOT qui contient uniquement le script à exécuter.
La ligne www-data ... détermine de quel façon cet utilisateur va pouvoir utiliser sudo : sur toutes les machines accessibles (en fait uniquement localhost...) sans mot de passe et uniquement la liste REBOOT.
Il vaut mieux garder la ligne pour root, qui lui permet de lancer n'importe quelle commande sur n'importe quelle machine, pour peu qu'il fournisse son mot de passe.
6 janv. 2009 à 14:28
jai une otre inquiétude sur le type d'utilisateur www-data ; o fait c l'utilisateur "apache non? si oui , j'ai comme l'impression que ce dernier est un utilisateur particulier, cad sous lequel on ne peut pas ouvrir une session avec un mot de passe comme c le cas pour les otres user créés.
Puisque sa marche pas encore , j'ai voulu pluto placer mon script shell dans /var/www/cgi-bin. Mais il se fait que par défaut le user apache n'accède pas à ce repertoire. alors je me suis demandé s'il fo aussi le préciser dans le /etc/sudoers?
6 janv. 2009 à 15:27
Mais ça n'empêche en rien le lancement de script par la méthode que j'ai décrit.
Si ton script est à la bonne place, et ton sudoers correctement configuré, alors tu peux le lancer avec sudo /chemin/absolu/vers/le/script.sh start
Il faut aussi le chemin absolue dans sudoers.
6 janv. 2009 à 18:49
A présent , je suppose que juste en plaçant mon scrpt SHELL ds /var/www/cgi-bin/ et en donnant tous les droits au user apache sur ce repertoire, et en configurant de façon conséquente mon serveur web de façon à bien interpréter les CGI, JY ARRIVERAI, mais je sais pas comment me prendre. J'insiste surtout sur les droits d'accès au repertoir /../cgi-bin/, puisque j'ai tjrs eu des erreurs du type FORBIDDEN . NE VS LASSEZ PAS DE MOI MERCI