J'ai récemment commencé à étudier les tissus pour le déploiement à distance. J'ai besoin de passer à un utilisateur différent (de celui sous lequel je me connecte) et je ne parviens pas à le faire. Est-ce possible, et si oui, comment ? Mon utilisateur actuel n'a pas sudo
permissions.
J'ai essayé de modifier les variables d'environnement suivantes
env.sudo_prefix = "su newUser -c "
env.sudo_prompt = "Password:"
Mais fabric n'attend pas la saisie du mot de passe pour 'newUser' et échoue.
out: Password:
[oldUser@ec2-111-11-111-111.compute-1.amazonaws.com] out: su: incorrect password
Fatal error: sudo() received nonzero return code 1 while executing!
Requested: touch x
Executed: su newUser -c -u "root" /bin/bash -l -c "cd /home/oldUser/upgrade && touch x"
Aborting.
Disconnecting from oldUser@ec2-111-11-111-111.compute-1.amazonaws.com... done.
Mise à jour :
Comme l'a suggéré J.F. Sebastian, su newUser -c
fonctionne, mais il demande le mot de passe pour chaque commande et pour chaque serveur, ce qui va à l'encontre de l'objectif de l'automatisation. Existe-t-il un moyen dans Fabric de passer la même valeur en fonction de l'invite (dans ce cas, c'est toujours le mot de passe qui est demandé) ? Password:
)