Réglez HISTIGNORE sur " sudo -S "
$ export HISTIGNORE='*sudo -S*'
Puis passez votre mot de passe en toute sécurité à sudo:
$ echo "your_password" | sudo -S -k <command>
"HISTIGNORE" signifie ne pas enregistrer cette commande dans l'historique. C'est l'historique en mémoire ou le fichier "~ / .bash_history".
Par exemple, l’information ci-dessous dirige votre mot de passe en toute sécurité vers la commande sudo, sans conserver d’historique de votre mot de passe.
“-S”, signifie utiliser stdin pour le mot de passe,
“-K” signifie ignorer les informations d'identification mises en cache pour forcer sudo à toujours demander. Ceci est pour un comportement cohérent.
$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -k whoami
$ echo "<your_password>" | sudo -S -k cat /etc/shadow
$ echo "<your_password>" | sudo -S -k bash /tmp/myscript.sh
L'inconvénient de la méthode ci-dessus est que si vous voulez voir les commandes que vous avez exécutées dans l'historique plus tard, elles ne seront pas là. Une autre méthode consiste à mettre à jour le cache des informations d'authentification sudo (la valeur par défaut est activée avec un délai d'expiration de 5 minutes), puis à exécuter le sudo séparément. Mais l'inconvénient est que vous devez connaître la mémoire cache de 5 minutes.
Par exemple:
$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -v
$ sudo whoami
$ echo "<your_password>" | sudo -S -v
$ sudo cat /etc/shadow
$ echo "<your_password>" | sudo -S -v
$ sudo /tmp/myscript.sh
Remarque J'ai exécuté un sudo avant chaque commande pour vérifier que le cache sudo était mis à jour, la valeur par défaut étant 5 minutes. Oui, whoami ne devrait pas prendre 5 minutes, mais je pense qu'il pourrait tout aussi bien l'exécuter avant chaque commande pour plus de cohérence. Vous pouvez aussi mettre "export HISTIGNORE = ' sudo -S'"dans votre fichier ~ / .bashrc, puis chargez-le avec". ~ / .bashrc "ou déconnectez-vous puis connectez-vous. Cependant, je pense utiliser ceci à des fins de script, donc je le garderai en haut de tous mes scripts pour des pratiques de sécurité optimales. Setting" echo "" | sudo -S -v "à une variable à la place peut aussi être une bonne idée, alors exécutez simplement la variable avant chaque commande nécessitant des privilèges root, voir le commentaire de Janar. Le commentaire de" John T "devrait également inclure le paramètre" -k " , comme si vous exécutiez "sudo -S" sans "-k" et que le cache d'authentification sudo dispose déjà de vos informations d'identification (et qu'il est toujours valide, le cache d'authentification sudo par défaut est de 5 minutes), puis bash exécutera votre mot de passe sous la forme d'une commande, à savoir mauvais.
halt
exécuter en tant que root.