On 17/07/10 15:36, Clément Février wrote: > je suis entrain d'écrire un script pour automatiser certaines taches. > Pour cela, j'ai besoin de me connecter avec un autre utilisateur. > L'idée du script est en gros : > #!/bin/sh > $password > su - $user > maildirmake Maildir > exit > exit 0
hardcoder un mot de passe n'est _jamais_ une bonne idée ... cela pose des problèmes de sécurité, de pérennité du script (l'user peut changer de mot de passe à tous moment), ... Pour remédier à cela on peut utiliser sudo : sudo -i -u user script.sh (Il n'a alors plus besoin de batailler avec su à l'intérieur du script) Si l'on veut que la commande sudo -i -u ne demande pas de mot de passe, il faut configurer cela le fichier /etc/sudoers (attention, ce dernier ne s'édite qu'avec la commande visudo) Si l'on veut que la commande /path/to/script.sh puisse être lancée par l'utilisateur "chef" en se substituant aux utilisateurs "esclave1", "esclave2" et "esclave3" sans avoir à entrer de mot de passe, il faut ajouter les lignes suivantes au fichier /etc/sudoers: ###################################################### User_Alias CHEF = chef Cmnd_Alias SCRIPT = /path/to/script.sh Runas_Alias ESCLAVES = esclave1, esclave2, esclave3 CHEF ALL=(ESCLAVES) NOPASSWD: SCRIPT ###################################################### CHEF, ESCLAVES et SCRIPT sont des variables dont on peut choisir le nom comme on veut. Il suffit alors à "chef" de lancer la commande suivante : sudo -i -u esclave1 /path/to/script.sh Bonne continuation Ju -- ubuntu-fr mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-fr
