Pour sudo, il existe une option -S pour accepter le mot de passe à partir de l'entrée standard. Voici l'entrée de l'homme :
-S The -S (stdin) option causes sudo to read the password from
the standard input instead of the terminal device.
Cela vous permettra d'exécuter une commande comme :
echo myPassword | sudo -S ls /tmp
Quant à ssh, j'ai fait de nombreuses tentatives pour automatiser/scripter son utilisation sans succès. Il ne semble pas y avoir de moyen intégré de transmettre le mot de passe dans la commande sans y être invité. Comme d'autres l'ont mentionné, l'utilitaire "attendre" semble viser à résoudre ce dilemme, mais en fin de compte, la configuration de l'autorisation de clé privée correcte est la bonne façon de procéder lorsque vous tentez d'automatiser cela.
J'ai écrit un Applescript qui demande un mot de passe via une boîte de dialogue, puis crée une commande bash personnalisée, comme ceci :
echo <password> | sudo -S <command>
Je ne sais pas si cela aide.
Ce serait bien si sudo acceptait un mot de passe pré-crypté, afin que je puisse le crypter dans mon script et ne pas m'inquiéter de l'écho des mots de passe en texte clair. Cependant, cela fonctionne pour moi et ma situation.
Pour sudo, vous pouvez également le faire :
sudo -S <<< "password" command
Pour ssh
vous pouvez utiliser sshpass
:sshpass -p yourpassphrase ssh [email protected]
.
Il vous suffit de télécharger d'abord sshpass :)
$ apt-get install sshpass
$ sshpass -p 'password' ssh [email protected]