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
--
Liste de diffusion ubuntu-fr [email protected]
Pour s'abonner ou se désabonner :
https://lists.ubuntu.com/mailman/listinfo/ubuntu-fr
Charte de la liste: http://doc.ubuntu-fr.org/groupes/ubuntu-fr-ml/charte