web-dev-qa-db-fra.com

Comment puis-je dire un mot de passe à un script Shell?

J'ai essayé de créer un script qui exécute Sudo apt-get update et Sudo apt-get autoremove chaque fois que je me connecte. Cela se passe comme suit:

#!/bin/bash
(Sudo apt-get update)
(Sudo apt-get autoremove)

Mais chaque fois que je lance le script, mon ordinateur est gelé. Je suppose que c'est parce qu'il attend que le script fournisse un mot de passe. Est-ce que ça marcherait si j'ajoutais PASSWD:mypassword après les commandes comme ceci:

#!/bin/bash
(Sudo apt-get update)PASSWD:mypassword
(Sudo apt-get autoremove)PASSWD:mypassword

ou y a-t-il autre chose que je devrais faire? Y a-t-il même un moyen? Si oui, s'il vous plaît dites-moi!

6
It's Willem

Vous n'êtes pas obligé d'inclure votre mot de passe dans votre script (d'après ce que j'ai vu, il est généralement déconseillé de l'indiquer dans un script). Au lieu de cela, vous pouvez modifier votre fichier sudoer pour vous permettre d'exécuter la commande apt-get sans avoir besoin d'un mot de passe.

Pour plus d'informations, allez sur ce site web .

ouvrez un terminal (ctrl + alt + T)

Entrez la commande

Sudo visudo

À la fin du type de fichier sudoers

username ALL=(ALL) NOPASSWD: /usr/bin/apt-get

Où nom d'utilisateur est votre nom d'utilisateur (évidemment)

éditer ce fichier vous permettra d'exécuter n'importe quelle commande apt-get sans entrer de mot de passe. Cela signifie que vous pouvez également installer ou mettre à niveau des packages sans entrer votre mot de passe.

Vous pouvez également ajouter d'autres commandes à cette liste en entrant le chemin de la commande après une virgule. Le chemin d'accès à une commande peut être trouvé en entrant la commande suivante dans un terminal.

which command

Où commande est le nom de la commande (par exemple, redémarrage).

3
Rumesh

La commande pour démarrer un script bash:

#!/bin/bash

La commande pour demander le mot de passe root des utilisateurs:

["$ UID" -eq 0] || exec Sudo bash "$ 0" "$ @"

Exemple de commandes de ce qui peut être le suivant:

apt-get update

apt-get upgrade --oui

shutdown -r now

Bonne chance avec votre script

0
Martijn