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
--
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