exécuter script shell via interface web (sécurisé si possible)

exécuter script shell via interface web (sécurisé si possible) - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 05-04-2009 à 11:41:29    

Bonjour à toutes et à tous !  :hello:  
J'ai écris un script en shell qui prend deux arguments en entré et retourne une valeur.
J'aimerais lancer ce script shell via une interface php...
Savez-vous quel est le meilleur moyen de faire cela ? Sachant que j'aimerais sécuriser cette application un maximum quand même.
 
Si vous avez quelques pistes, pouvez-vous m'aider ? :jap:  
Merci.

Reply

Marsh Posté le 05-04-2009 à 11:41:29   

Reply

Marsh Posté le 05-04-2009 à 12:19:45    

Reply

Marsh Posté le 05-04-2009 à 13:18:21    

Merci cartemere,
ça à l'air vraiment pas mal Webmin !
 
Juste une question : Peut-on avoir une bonne sécurité avec Webmin sachant que c'est "primordial" pour moi ? Je veux dire est ce que Webmin est conseillé pour permettre de sécuriser l'application ?

Reply

Marsh Posté le 07-04-2009 à 00:42:41    

Webmin juste pour lancer un script shell ?
Sinon tu code tout ca em php, ya pas long à coder et c'est pas compliqué.
Voicu un exemple qui me sert à lancer mpd via une interface toute simple en php :
On joue avec les forms :  

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <link rel="stylesheet" type="text/css" href="./main.css" />
  5. <title>MPD</title>
  6. </head>
  7. <body>
  8. <h1>Sput'stream</h1>
  9. <br>
  10. <?php
  11. system("[[ $(echo $'status\nclose\n' | nc 127.0.0.1 6600 | awk '/^state/ {print $2}') == play ]] && exit 0 || exit 1", $ret);
  12. if ( $ret == 0 ) {
  13.         echo '<br><br><br>' ."\n";
  14.         echo '<a href="index.php"> <img border="0" alt="ON AIR" title="ON AIR" src="./on-air.jpg" width="200" height="100" /></a>';
  15. }
  16. else {
  17.         echo '<b>Choose if mpd will run on a local or remote device</b><br><br><br>
  18. <form action="process.php" method="post">
  19.         <select name="item">
  20.         <option>local</option>
  21.         <option>remote</option>
  22.         </select>
  23.         <input type="submit" />
  24. </form>';
  25. }
  26. ?>
  27. html stuff
  28. </body>
  29. </html>


 
 

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <link rel="stylesheet" type="text/css" href="./main.css" />
  5. </head>
  6. <body>
  7. <?php
  8. $item = $_POST['item'];
  9. system("/bin/bash -c \"/home/www/mpd.bash $item &>/dev/null\"" );
  10. ?>
  11. <meta http-equiv='refresh' content='0;http://domain.tld/foo.php'>
  12. </body>
  13. </html>


 
Tu notera que j'appelle mpd.bash avec l'argument que j'ai récupéré dans les forms.
Tu peux placer un htaccess ou configurer des restrictions dans apache/lighty/whatever pour n'autoriser que ceux qui te semblent montrer patte blanche


Message édité par sputnick le 07-04-2009 à 00:43:50
Reply

Marsh Posté le 07-04-2009 à 20:06:32    

Merci sputnick !
C'est exactement ce qu'il me fallait... !

Reply

Sujets relatifs:

Leave a Replay

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