93 votes

Utiliser sudo avec le mot de passe comme paramètre

Je voudrais exécuter sudo avec mon mot de passe en paramètre afin de pouvoir l'utiliser pour un script. J'ai essayé

sudo -S mypassword execute_command

mais sans succès. Avez-vous des suggestions ?

211voto

stonesam92 Points 3152

L'option -S permet à sudo de lire le mot de passe depuis STDIN. Cela signifie que vous pouvez faire

echo mypassword | sudo -S command

pour passer le mot de passe à sudo

Cependant, les suggestions faites par d'autres personnes qui n'impliquent pas la transmission du mot de passe dans le cadre d'une commande, comme la vérification que l'utilisateur est Root, sont probablement de bien meilleures idées pour des raisons de sécurité.

61voto

perreal Points 47912

Vous pouvez définir le s bit pour votre script afin qu'il n'ait pas besoin de sudo et s'exécute en tant que Root (et vous n'avez pas besoin d'écrire votre mot de passe Root dans le script) :

sudo chmod +s myscript

29voto

matteomattei Points 640
echo -e "YOURPASSWORD\n" | sudo -S yourcommand

4voto

Lucas Holt Points 909

Une option consiste à utiliser l'option -A de sudo. Cela lance un programme pour demander le mot de passe. Plutôt que de demander, vous pourriez avoir un script qui crache simplement le mot de passe pour que le programme puisse continuer.

-4voto

kbdjockey Points 843
# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X