Commande Shell et php - PHP - Programmation
Marsh Posté le 15-04-2008 à 10:14:15
En configurant sudo ?
http://www.gratisoft.us/sudo/man/sudoers.html
Marsh Posté le 15-04-2008 à 10:34:46
darknewbie31 a écrit : Bonjour, |
Tu crées des scripts php qui lancent ces commandes, et tu sécurises l'accès à ces scripts...
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 ?
Marsh Posté le 15-04-2008 à 10:49:37
Tu n'es pas root via php, ça c'est clair.
Il faut dans ce cas effectivement configurer sudo pour donner le droit à www-data d'exécuter ces commandes en tant que root...
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.
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.
Marsh Posté le 15-04-2008 à 12:17:43
C'est bon j'ai compris.
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.
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.