J'ai Ubuntu 18.04 sur mon win10 et je crée généralement mon mot de passe avec cette ligne de code:
echo -n "<some text generated by hand from the site's domains>" | sha256sum |cut -c-20
Mais aujourd'hui, j'ai accidentellement appuyé sur Enter après la commande echo.
Ubuntu enregistre-t-il ses sorties de terminal dans un fichier? Suis-je en sécurité en utilisant simplement la commande clear
?
Recommandez-vous une meilleure solution pour que mon mot de passe soit différent l’un de l’autre et qu’il soit difficile d’en calculer un nouveau en fonction de certains de mes autres mots de passe?
Merci.
La sortie de la commande est généralement pas enregistrée et la fermeture de la fenêtre suffit. Mais la commande elle-même est stockée: dans l'historique du shell.
Pour le supprimer, il vaut mieux d'abord fermer toutes les fenêtres du terminal. Normalement, l'historique est écrit dans le fichier _~/.bash_history
_ lorsque le shell se termine et la manipulation directe du fichier ne sera d'aucune aide, car il sera écrasé à la sortie du shell. Il existe différentes manières de configurer history
différemment, mais le plus simple consiste à simplement fermer toutes les fenêtres du terminal.
Ouvrez maintenant une nouvelle fenêtre de terminal et tapez
_history
_
ou
_history | grep echo
_
Exemple de sortie:
_...
2007 echo -n "<some text generated by hand from the site's domains>" | sha256sum |cut -c-20
2008 echo -n "secret" | sha256sum |cut -c-20
2009 echo -n "secret"
2010 history
_
Vous voyez ici que non seulement la commande "malveillante" est stockée, mais également la "correcte". Vous pouvez le supprimer avec
_history -d 2009
_
où _2009
_ est le numéro dans la première colonne. Changer cela en conséquence. Maintenant:
_history
...
2007 echo -n "<some text generated by hand from the site's domains>" | sha256sum |cut -c-20
2008 echo -n "secret" | sha256sum |cut -c-20
2009 history
2010 history -d 2009
2011 history
_
Pour l’avenir, vous voudrez peut-être préfixer votre _echo … | sha256sum …
_ avec un espace, c.-à-d.
__echo -n "secret" | sha256sum |cut -c-20 # The '_' indicates a leading space
_
De cette façon, la commande complète ne sera pas enregistrée dans l'historique. Le comportement est contrôlé par la variable HISTCONTROL ( man bash
):
HISTCONTROL
Liste de valeurs séparées par des deux-points contrôlant la manière dont les commandes sont enregistrées dans la liste d'historique. Si la liste de valeurs comprend
ignorespace
, les lignes commençant par un caractère d'espacement ne sont pas enregistrées dans la liste d'historique. Une valeur deignoredups
empêche l'enregistrement des lignes correspondant à l'entrée précédente de l'historique. Une valeur deignoreboth
est un raccourci pourignorespace
etignoredups
.
Vous voudrez peut-être ajouter _export HISTCONTROL='ignoreboth'
_ à votre _~/.bashrc
_ pour y parvenir.