Reboot d'un serveur à partir d'un script PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Reboot d'un serveur à partir d'un script PHP

par lolodu67 » 12 févr. 2009, 22:43

Ok bah en tout cas merci pour votre aide, je vais voir ce que je décide, mais c vrai que c'est pas terrible si ça pose un problème de sécurité, surtout que des petits malin, y en a partout ...

par Ripat » 10 févr. 2009, 17:52

car j'ai un jeu qui demande beaucoup de ressources, et le serveur sql a tendance a planter assez souvent et en général quand je ne suis pas là pour le remettre !
Sous Linux on ne doit redémarrer que quand on change de noyau (et encore...). MySQL est un serveur très stable et ne devrait pas "planter" sans raison. Regarde dans ses log l'origine du plantage et corrige tes requêtes ou structure de ta BDD.
Une piste pour debugger:
http://dev.mysql.com/doc/refman/5.0/en/ ... y-log.html
mais niveau sécurité, que peut il arriver ?
Donner accès à des commandes root à des non root est une invitation à "l'escalade" et va à l'encontre des principes de base de la séparation de privilèges qui a fait de *nux une plate forme très sécurisée.

par @rthur » 10 févr. 2009, 00:22

(si pas acces base de donné, alors reboot)

car j'ai un jeu qui demande beaucoup de ressources, et le serveur sql a tendance a planter assez souvent et en général quand je ne suis pas là pour le remettre !
:lol:

Et pourquoi tu ne redémarre pas juste le serveur MySQL plutôt que ton serveur en entier???

Code : Tout sélectionner

/etc/init.d/mysql restart

par lolodu67 » 09 févr. 2009, 23:13

Bah webmin est installé dessus, je sais pas si tu vois ce que c'est ...
En tout cas, il est possible de redémarrer depuis webmin avec la commande là :
shutdown -r now (à ce que je me rapelle)

donc mon but étant de faire un reboot auto via un script php
(si pas acces base de donné, alors reboot)

car j'ai un jeu qui demande beaucoup de ressources, et le serveur sql a tendance a planter assez souvent et en général quand je ne suis pas là pour le remettre !

mais niveau sécurité, que peut il arriver ?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par Ripat » 09 févr. 2009, 22:59

Ça ne doit pas être du Debian cette distro ou alors une installation maison d'OVH. Qu'importe, sous root fais:

Code : Tout sélectionner

# visudo
Et ajoute cette ligne:

Code : Tout sélectionner

nobody ALL = NOPASSWD: /sbin/shutdown
Pas très brillant pour la sécurité mais c'est toi qui vois. Et comment vas-tu faire pour le rallumer ton serveur? Sinon, tu as aussi la commande reboot:

/sbin/reboot

par lolodu67 » 09 févr. 2009, 20:51

Bonsoir,
je me suis enfin inscrit !
Voila ce que me dit cette commande :
Image

par Ripat » 09 févr. 2009, 15:41

Apparemment ton serveur http ne tourne pas sous apache2. Essaye:

Code : Tout sélectionner

ps -C apache -C httpd -o ruser,rgroup

par lolodu67 » 08 févr. 2009, 22:50

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:

Code : Tout sélectionner

$ egrep 'APACHE_RUN_(USER|GROUP)' *
ou bien (dans n'importe quel répertoire):

Code : Tout sélectionner

$ ps -C apache2 -o ruser,rgroup
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 :D

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par Ripat » 02 févr. 2009, 09:24

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:

Code : Tout sélectionner

$ egrep 'APACHE_RUN_(USER|GROUP)' *
ou bien (dans n'importe quel répertoire):

Code : Tout sélectionner

$ ps -C apache2 -o ruser,rgroup

par lolodu67 » 01 févr. 2009, 21:57

Heu ... Bah j'ai préférer faire un screen lol
Voila :
http://www.info-actupc.fr/upload/images/1233518209.jpg

Merci d'avance !

par stopher » 01 févr. 2009, 16:25

Salut ,

même en ssh , tu tapes :

Code : Tout sélectionner

sudo visudo
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 ..

par lolodu67 » 31 janv. 2009, 17:04

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 ?

par Ripat » 31 janv. 2009, 11:03

Montre-nous ton fichier sudoers (/etc/sudoers)

Re: Reboot d'un serveur à partir d'un script PHP

par lolodu67 » 30 janv. 2009, 23:57


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:

Code : Tout sélectionner

exec("sudo shutdown -r +3", $reponse);
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 ...

Re: Reboot d'un serveur à partir d'un script PHP

par Xenon_54 » 23 déc. 2008, 21:39

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:

Code : Tout sélectionner

exec("sudo shutdown -r +3", $reponse);