<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    <br>
    <br>
    Le 30/09/2011 11:13, Snarf a écrit :
    <blockquote cite="mid:20110930091322.GB18273@babylon.dahwa.fr"
      type="cite">
      <pre wrap="">Le vendredi 30 septembre 2011 à 11:08, Clément Février écrivait:
</pre>
      <blockquote type="cite">
        <pre wrap="">Bonjour,
</pre>
      </blockquote>
      <pre wrap="">
</pre>
      <blockquote type="cite">
        <pre wrap="">Je cherche à utiliser su dans un script bash pour exécuter une commande.
Le mot de passe de l'utilisateur ne sera pas saisi durant l'exécution du
script. J'ai donc mis cette ligne dans mon script :
</pre>
      </blockquote>
      <pre wrap="">
</pre>
      <blockquote type="cite">
        <pre wrap="">echo -e "${mdp}" | su $pseudo -c "echo plop"
</pre>
      </blockquote>
      <pre wrap="">oulala, je prends un xanax, je vais hurler dans les toilettes  et je reviens

.
.
.
.


voila, ça va mieux ;p

</pre>
      <blockquote type="cite">
        <pre wrap="">Mais cette commande me retourne :
su : doit être lancé à partir d'un terminal
</pre>
      </blockquote>
      <pre wrap="">
Bah oui, c'est juste super unsecure et dangeureux ;p su ne se laissera
pas faire. Comme bash qui dropera ses privileges si il voit qu'il
interprete un script avec le SUID root ;p


</pre>
      <blockquote type="cite">
        <pre wrap="">Je peux éventuellement ajouter /bin/su à /etc/sudoers puis lancer :
sudo su
su $pseudo -c "echo plop"
exit
</pre>
      </blockquote>
      <pre wrap="">

</pre>
      <blockquote type="cite">
        <pre wrap="">Est-ce possible d'éviter cette étape et de passer directement le mot de
passe en argument à su ?
</pre>
      </blockquote>
      <pre wrap="">
que veux tu faire exactement ? en general, ce genre ce cas est tres
specifique. 

A priori, ajouter ta_commande aux sudoers avec l'option NOPASSWD sera
plus propre. Mais fait attention a ce que fait ta_commande, elle sera
executée en root 

exemple 
-------------------- cut here --------------------
some_user ALL = NOPASSWD: /bin/cat
-------------------- cut here --------------------

apres le user pourra faire une sudo cat sans demande de passwd 



Snarf

</pre>
    </blockquote>
    <small><small><big>Bonjour,</big><br>
        <br>
      </small>Si la commande doit être exécuté avec un user particulier
      (et pas root)</small><br>
    <pre wrap="">some_user ALL = NOPASSWD: (user)/bin/cat</pre>
    <small><br>
      et avec un sudo -u user cmd<br>
    </small><br>
    <small>Cordialement,<br>
      Serge</small><br>
  </body>
</html>