su dans un script bash

Serge BESSON serge at famille-besson.com
Ven 30 Sep 09:19:48 UTC 2011



Le 30/09/2011 11:13, Snarf a écrit :
> Le vendredi 30 septembre 2011 à 11:08, Clément Février écrivait:
>> Bonjour,
>> 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 :
>> echo -e "${mdp}" | su $pseudo -c "echo plop"
> oulala, je prends un xanax, je vais hurler dans les toilettes  et je reviens
>
> .
> .
> .
> .
>
>
> voila, ça va mieux ;p
>
>> Mais cette commande me retourne :
>> su : doit être lancé à partir d'un terminal
> 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
>
>
>> Je peux éventuellement ajouter /bin/su à /etc/sudoers puis lancer :
>> sudo su
>> su $pseudo -c "echo plop"
>> exit
>
>> Est-ce possible d'éviter cette étape et de passer directement le mot de
>> passe en argument à su ?
> 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
>
Bonjour,

Si la commande doit être exécuté avec un user particulier (et pas root)

some_user ALL = NOPASSWD: (user)/bin/cat


et avec un sudo -u user cmd

Cordialement,
Serge
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.ubuntu.com/archives/ubuntu-fr/attachments/20110930/f83f375e/attachment.html>


Plus d'informations sur la liste de diffusion ubuntu-fr