Linux droit d'execution sur un prog via php

xunil2003 -  
Autumn`Tears Messages postés 1247 Statut Membre -
Bonjour,

J'essaie depuis php de pouvoir démarrer, stopper, redémarrer un programme avec un script php, mais il y a un problème de droit.

Code php
          <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"> 
  <head> 
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> 
    <title>Application</title> 
  </head> 
  <body> 
    <p><br /> 
    </p> 
    <p></p> 
    <table border="1" style="width: 100%"> 
      <tbody> 
        <tr><td>Amule<br /> 
          </td> 
          <td><form method="post" 
 action="" name="Application1-On"><input name="Application1-On" value="Démarrer" type="submit"><br /> 
          </td> 
          <td><form method="post" 
 action="" name="Application1-Off"><input name="Application1-Off" value="Arrêter" type="submit"><br /> 
          </td> 
          <td><form method="post" 
 action="" name="Application1-Off"><input name="Application1-re" value="Redémarrer" type="submit"><br /> 
          </td> 
        </tr> 
      </tbody> 
    </table> 
<?php 

if (isset($_POST['Application1-On'])){ 

$commande = "/etc/init.d/amule-daemon start"; 
exec("$commande", $top, $error ); 
echo nl2br(implode("\n",$top)); 
if ($error){ 
    exec('/usr/bin/top n 1 b 2>&1', $error ); 
    echo "Error: "; 
    exit($error[0]); 
} 
} 
?>  
    <p><br /> 
    </p> 
  </body> 
</html>


/var/log/apache2/error.log
root@debian:# cat /var/log/apache2/error.log 
sh: /etc/init.d/service: not found 
start-stop-daemon: unable to set gid to 1000 (Operation not permitted)


Comment puis je faire ?

Merci.

3 réponses

  1. Autumn`Tears Messages postés 1247 Statut Membre 145
     
    Salut,

    En effet il faut être root pour cela... Ou alors en rajoutant www-data dans les sudoers (fichier dans /etc/sudoers)
    0
  2. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    Bonjour,

    Je n'ai pas /etc/sudoers ???
    serveur@debian:~$ ls -alF /etc/sudoers   
    ls: impossible d'accéder à /etc/sudoers: Aucun fichier ou dossier de ce type   
    Vous avez du nouveau courrier dans /var/mail/serveur   
    serveur@debian:~$ 


    Dans "/etc/init.d" J'ai copier "amule-daemon" en "service-amule-daemon"
    cp -v /etc/init.d/amule-daemon /etc/init.d/service-amule-daemon

    puis j'ai fait :
    chmod u+s /etc/init.d/service-amule-daemon

    Mais c'est bizarre j'ai le même message, logiquement la commande devrai être exécutée avec les permissions root. ?

    root@debian:# ls -alF /etc/init.d/am*  
    -rwxr-xr-x 1 root root 2554  4 juin   2010 /etc/init.d/amule-daemon*  
    root@debian:# ls -alF /etc/init.d/ser*  
    -rwsrwsrwt 1 root root 2554  2 août  19:23 /etc/init.d/service-amule-daemon*  
    root@debian:# 


    Merci.
    0
    1. Autumn`Tears Messages postés 1247 Statut Membre 145
       
      Essaie de te logger en root et de taper : visudo

      C'est étrange que tu n'aies pas ce fichier.
      0
  3. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    bonjour,

    Y a pas le fichier ???
    root@debian:# visudo
    -bash: visudo : commande introuvable
    root@debian:# 
    0
    1. Autumn`Tears Messages postés 1247 Statut Membre 145
       
      Hm, étrange. Est-ce tu as le paquet "sudo" d'installé ?
      0