Page 1 sur 2
Reboot d'un serveur à partir d'un script PHP
Posté : 12 déc. 2008, 11:27
par wo
Bonjour,
je voudrais pouvoir rebooter mon serveur à partir d'un script en PHP installé sur celui-ci.
J'ai essayé le code suivant :
exec("shutdown -r +3 -u {root} -p {password}", $reponse);
...mais ça ne marche pas.
Merci d'avance de votre aide.
Philippe
Posté : 12 déc. 2008, 12:59
par Calimero
Bonjour,
Ce script PHP est-il éxécuté sous forme de page web ?
Posté : 12 déc. 2008, 14:25
par stopher
Salut ,
Je ne pense pas qu'il soit conseillé d'utiliser directement l'utilisateur root pour ce script ...
Perso , je chercherai plutot du coté de sudo sur un user standard de la machine , et la fonction proc_open() pour executer la commande systéme avec les bons paramètres .
Posté : 13 déc. 2008, 02:09
par @rthur
Bonjour,
As-tu essayé de faire un print de ta commande et de la tester en ligne de commande?
Posté : 15 déc. 2008, 11:47
par Ripat
Si ça ne marche pas, linux reste rarement muet sur les causes, essaye en redirigeant le STDERR(2) sur la sortie standard STDOUT(1) comme ceci:
Code : Tout sélectionner
exec("shutdown -r +3 -u {root} -p {password} 2>&1", $reponse);
print_r ($reponse);
En passant, il est rarement nécessaire de rebooter une machine Linux. Des deamon oui, mais pas la machine. J'ai des serveurs qui tournent depuis deux ans sans reboot. Il n'y a qu'en cas de changement de noyau qu'il faille le faire et encore, les hackers (sens positif du terme) le font sans reboot. Juste pour le sport!
Re: Reboot d'un serveur à partir d'un script PHP
Posté : 23 déc. 2008, 21:39
par Xenon_54
exec("shutdown -r +3 -u {root} -p {password}", $reponse);
Il n'y a pas de paramètres
-u ou
-p à la commande
shutdown
Le service Apache est probablement exécuté en tant que l'utilisateur nobody, www-data ou apache. Ces utilisateurs ne peuvent exécuter la commande shutdown, seul root ou un utilisateur privilégié peut le faire.
Tu dois ajouter l'utilisateur d'Apache au fichier /etc/sudoers et autoriser l'usage de la commande
shutdown via sudo sans password.
Voici un guide pour la gestion de sudoers:
https://help.ubuntu.com/community/Sudoers
Ton script deviendra alors:
Re: Reboot d'un serveur à partir d'un script PHP
Posté : 30 janv. 2009, 23:57
par lolodu67
Le service Apache est probablement exécuté en tant que l'utilisateur nobody, www-data ou apache. Ces utilisateurs ne peuvent exécuter la commande shutdown, seul root ou un utilisateur privilégié peut le faire.
Tu dois ajouter l'utilisateur d'Apache au fichier /etc/sudoers et autoriser l'usage de la commande
shutdown via sudo sans password.
Voici un guide pour la gestion de sudoers:
https://help.ubuntu.com/community/Sudoers
Ton script deviendra alors:
J'ai fait ce que tu as dit, j'ai autoriser les admin a executé shutdown sans mdp , mais ça ne fonctionne pas ! Pas moyen de reboot ce foutu pc en php !
Sur le net, on dit partout que c'est faisable, mais on ne dit pas comment ...
Posté : 31 janv. 2009, 11:03
par Ripat
Montre-nous ton fichier sudoers (/etc/sudoers)
Posté : 31 janv. 2009, 17:04
par lolodu67
Bonjour,
Heu ... alors, n'étant pas très fort, je ne vois absolument pas comment faire pour le montrer a part le retaper entièrement !
Je me connecte sur le serveur en SSH via windows, on peu copier coller ?
Posté : 01 févr. 2009, 16:25
par stopher
Salut ,
même en ssh , tu tapes :
là tu sélectionnes le tout avec ta sourie , ensuite , deux solutions ,
1-> clic droit sur le texte sélectionné copier puis tu vas sur le post php-france , clic droit coller
2-> tu vas sur le post de php-france , et le boutton du milieu de ta sourie permet de coller directement ce que tu selectionnes avec le curseur ( systéme linux )
Apres , tu peux directement importer le fichier sudoers via un scp puis l'ouvrir en local .. mais bon , vue la taille tu fichier , ca complique pour rien ..
Posté : 01 févr. 2009, 21:57
par lolodu67
Heu ... Bah j'ai préférer faire un screen lol
Voila :
http://www.info-actupc.fr/upload/images/1233518209.jpg
Merci d'avance !
Posté : 02 févr. 2009, 09:24
par Ripat
Apparemment, il n'y a que les utilisateurs du groupe nobody qui penvent faire un shutdown.
Quel est le nom d'utilisateur et de groupe de ton serveur apache? Dans le répertoire de configuration d'Apache (ça dépend de ta distro mais sans doute dans
/etc/apache2/ ) fait:
ou bien (dans n'importe quel répertoire):
Posté : 08 févr. 2009, 22:50
par lolodu67
Apparemment, il n'y a que les utilisateurs du groupe nobody qui penvent faire un shutdown.
Quel est le nom d'utilisateur et de groupe de ton serveur apache? Dans le répertoire de configuration d'Apache (ça dépend de ta distro mais sans doute dans
/etc/apache2/ ) fait:
ou bien (dans n'importe quel répertoire):
Excusez moi d'avoir mais autant de temp a répondre, je suis sous debian (je crois, c'est un serveur OVH) et je ne trouve pas /etc/apache2/
Pour le deuxième, ça m'inscrit juste en majuscule :
RUSER RGROUP
Voila, en espérant que ça vous aide à m'aider
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]
Posté : 09 févr. 2009, 15:41
par Ripat
Apparemment ton serveur http ne tourne pas sous apache2. Essaye:
Posté : 09 févr. 2009, 20:51
par lolodu67
Bonsoir,
je me suis enfin inscrit !
Voila ce que me dit cette commande :
