Commande Shell et php

Commande Shell et php - PHP - Programmation

Marsh Posté le 14-04-2008 à 20:11:32    

Bonjour,
 
J'aurais besoin d'un peu d'aide pour finir un script PHP qui lancerais des commandes shell, bien evidament il faut que cela soit sécurisé.
Je voudrai lancer une commande pour reboot mon serveur dédier.
Une autre pour lancer mon serveur teamspeak. ( sh teamspeak start|stop)
Et une derniere pour gerer mon parfeu ( IPTABLES -A Input x.x.x.x drop )
 
J'aimerais pouvoir lancer ces commandes sur mon site, afin ce laisser certain membres les lancer mais ces membres ne doivent pas avoir accés au autre commandes du dédier.
 
Merci d'avance.

Reply

Marsh Posté le 14-04-2008 à 20:11:32   

Reply

Marsh Posté le 15-04-2008 à 10:14:15    

Reply

Marsh Posté le 15-04-2008 à 10:34:46    

darknewbie31 a écrit :

Bonjour,
 
J'aurais besoin d'un peu d'aide pour finir un script PHP qui lancerais des commandes shell, bien evidament il faut que cela soit sécurisé.
Je voudrai lancer une commande pour reboot mon serveur dédier.
Une autre pour lancer mon serveur teamspeak. ( sh teamspeak start|stop)
Et une derniere pour gerer mon parfeu ( IPTABLES -A Input x.x.x.x drop )
 
J'aimerais pouvoir lancer ces commandes sur mon site, afin ce laisser certain membres les lancer mais ces membres ne doivent pas avoir accés au autre commandes du dédier.
 
Merci d'avance.


Tu crées des scripts php qui lancent ces commandes, et tu sécurises l'accès à ces scripts...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 15-04-2008 à 10:46:07    

J'utilise les commandes
 
exec et shell_exec mais elle ne semble pas marché.
Peu etre du fait que ca lance pas mes script en root ?
echo exec('whoami'); retourne www-data.
 
Voici mes commandes :
 
1 - exec('reboot');
 
2 - exec('cd /home/TeamSpeak/');
     shell_exec('./teamspeak $action');
//$action est donné via php pour restart start ou stop.
 
3 - iptables -A INPUT -s $user_IP -j DROP
//$user_IP est sélectionner via php.
 
Est -ce bien comme ca que je doit les écrire ?

Reply

Marsh Posté le 15-04-2008 à 10:49:37    

Tu n'es pas root via php, ça c'est clair.:D
Il faut dans ce cas effectivement configurer sudo pour donner le droit à www-data d'exécuter ces commandes en tant que root...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 15-04-2008 à 10:58:33    

Et je fait ca comment ?
 
www-datat            ALL = /usr/bin/su operator ?
 
J'avoue que je ne comprend pas bien le tuto de configuration de sudo, je suis un peu perdu la dedans.
 
Si non est-il possible de les lancer en root ?
 
EDIT : Je commence a comprendre.
Cepandant moi je tourne sur Lunix Debian sarge.
Je ne possede pas de sudouser.


Message édité par darknewbie31 le 15-04-2008 à 11:07:50
Reply

Marsh Posté le 15-04-2008 à 11:15:05    

http://doc.ubuntu-fr.org/sudo
une doc en fr.
Tu as un fichier sudoers à editer avec visudo. Une fois que t'as compris comment c'est foutu, c'est de la balle.

Reply

Marsh Posté le 15-04-2008 à 12:17:43    

C'est bon j'ai compris. :D
 
Par contre pour les alias de commandes
Cmnd_Alias    APACHE=/etc/init.d/apache2 restart
Le APACHE est juste un nom ou correspond a quelque chose de précis ?
 
dans mon cas j'ai :
Cmnd_Alias    REBOOT = /usr/sbin/reboot
Cmnd_Alias    TeamSpeak=/home/TeamSpeak/teamspeak2-server_startscript restart
Cmnd_Alias    TeamSpeak=/home/TeamSpeak/teamspeak2-server_startscript start
Cmnd_Alias    TeamSpeak=/home/TeamSpeak/teamspeak2-server_startscript stop
 
Mais pour IPTABLES je voit pas trop comment faire. :/
 
EDIT : Avec ces alias aucun résultat.
Je me suis apercu que echo exec('whoami'); retourne www-data or quand je rentre cette utilisateur dans sudoers et que je fait sudo -l je ne voit pas les droit ni cette utilisateur.
En revanche en metant root, j'ai bien la commande qui apparait.


Message édité par darknewbie31 le 16-04-2008 à 00:44:12
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed