su dans un script bash
Snarf
snarf at dahwa.fr
Ven 30 Sep 09:13:22 UTC 2011
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
--
Ah ouais ? Hé bien si moi j'ai l'air d'un pédé, alors tout le monde dans ce
vaisseau a l'air d'un pédé ! C'est ce qui arrive quand on s'habille en
collants.
-- Spock
Plus d'informations sur la liste de diffusion ubuntu-fr