web-dev-qa-db-fra.com

Utiliser Sudo avec un mot de passe comme paramètre

Je souhaite exécuter Sudo avec mon mot de passe en tant que paramètre afin de pouvoir l'utiliser pour un script. j'ai essayé

Sudo -S mypassword execute_command

mais sans aucun succès. Aucune suggestion?

66
ccman

Le commutateur -S permet à Sudo de lire le mot de passe de STDIN. Cela signifie que vous pouvez faire

echo mypassword | Sudo -S command

passer le mot de passe à Sudo

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

147
stonesam92

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

Sudo chmod +s myscript
45
perreal
echo -e "YOURPASSWORD\n" | Sudo -S yourcommand
22
matteomattei

Une option consiste à utiliser l'indicateur -A pour 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.

2
Lucas Holt