202 votes

J'ai accidentellement tapé le mot de passe dans la ligne de commande bash.

J'ai accidentellement tapé mon mot de passe dans la ligne de commande bash, en confondant l'option Last login: ... ligne pour Wrong password (J'étais pressé). Que dois-je faire pour couvrir ma trace ?

Ce que j'ai fait, c'est éditer .bash_history et en supprimant la ligne incriminée (j'ai dû me reconnecter une fois pour voir le mot de passe apparaître dans le fichier afin de pouvoir le supprimer, et me reconnecter à nouveau pour le voir disparaître de l'historique disponible sous la touche UPARROW).

Y a-t-il un autre endroit où l'historique des commandes pourrait être sauvegardé ? Le système est CentOS 6.5.

10voto

Volker Siegel Points 1332

En plus des autres réponses, il peut être pertinent que le mot de passe se trouve également dans le tampon de défilement du terminal - l'historique du texte affiché - maintenant, et, ce qui est plus problématique, peut-être sur le disque dur, si l'émulateur de terminal a enregistré l'historique sur le disque. Cela se produit dans KDE konsole si la taille de l'historique est définie sur "scrollback illimité", pour ne jamais rejeter aucune sortie.

7voto

jris198944 Points 187

Mit $<space> command une commande n'est pas ajoutée à l'historique, parfois utile.

$  history | grep mywierdgrep
$ history | grep mywierdgrep
 2005  history | grep mywierdgrep

4voto

inder Points 565

Une autre alternative pour éviter d'enregistrer dans le fichier d'historique (avant de se déconnecter) consiste simplement à

chmod 400 ~/.bash_history 

et ensuite se déconnecter. Arrête l'écriture de l'historique dans le fichier (puisque le fichier est en lecture seule) de sorte que toute la session bash soit supprimée et que l'historique précédent soit conservé.

Connectez-vous à nouveau et réinitialisez les permissions à 600 (ou pas, selon votre degré de paranoïa !).

1voto

Je vois mentionné à plusieurs reprises

Sachez que cela ne fonctionne pas si vous avez défini "PROMPT_COMMAND=history -a" [ ] Vous devrez modifier votre .bash_history pour le supprimer.

La première partie est tout à fait vraie, mais vous n'avez pas besoin de modifier manuellement .bash_history pour y remédier. Si vous combinez les deux commandes sur une seule ligne, cela fonctionne parfaitement bien :

$ history
351 ssh me@site.com
352 my_password
$ history -d 352 ; history -w

0voto

JeanLaurent Points 327

De nombreuses réponses tentent de supprimer la commande en question de l'historique de la session bash en cours avant qu'elle ne soit écrite sur le disque dur. $HISTFILE (~/.bash_history par défaut). Cependant, si vous avez défini PROMPT_COMMAND=history -a la commande avec votre mot de passe est immédiatement écrite dans votre fichier $HISTFILE lorsque l'invite s'affiche après la fin de la commande. Vous devrez modifier votre $HISTFILE pour l'enlever.

Ce paramètre est généralement utilisé pour entrelacer les commandes de plusieurs sessions bash ouvertes .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X