J'ai accidentellement tapé mon mot de passe dans la ligne de commande bash, en prenant la Last login: ...
ligne pour Wrong password
(j'étais pressé). Que dois-je faire pour recouvrir ma trace?
Ce que j’ai fait, c’est l’édition .bash_history
et la suppression de la ligne incriminée (je dois me reconnecter une fois pour que le mot de passe apparaisse dans le fichier afin que je puisse le supprimer, puis de 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.
linux
command-line
bash
centos
MaDa
la source
la source
/dev/null
.ssh-keygen -f id_rsa -p
.Réponses:
Vous pouvez supprimer uniquement la ligne incriminée de
bash
l'historique de, au lieu d'effacer tout l'historique. Supprimez simplement la ligne avec le-d
drapeau, puis sauvegardez (écrivez) le nouvel historique avec le-w
drapeau:la source
Il y a deux parties à ceci:
bash
stocke l'historique dans un fichier~/.bash_history
qui est, par défaut, écrit à la fin de la sessionhistory
qui est gardé en mémoirePour être en sécurité, vous devez l'effacer de la session:
et tronquer le fichier d'historique selon les besoins:
Si votre session dans laquelle vous avez saisi le mot de passe est toujours ouverte, une autre façon de couvrir votre trace consiste à définir la
HISTFILE
variable sur le périphérique null afin que l'historique ne soit pas écrit à la~/.bash_history
fermeture de la session:la source
shred
- vous pas remplacer le fichier ou le remplacer de nombreuses fois?HISTFILE=
est suffisant. Debash(1)
: Si non défini, l'historique des commandes n'est pas enregistré lorsqu'un shell se ferme.Puisque bash (du moins toutes les versions historiques et actuelles dont je suis au courant) n'enregistre pas automatiquement l'historique tant que vous n'avez pas quitté, une stratégie généralement applicable lorsque vous avez saisi une commande que vous souhaitez vous assurer de ne jamais enregistrer est de taper immédiatement:
Cela tue le shell avec
SIGKILL
, ce qui ne peut pas être attrapé, donc le shell n'a aucun moyen de sauvegarder quoi que ce soit à la sortie.La plupart des autres approches impliquent un nettoyage après coup (c'est-à-dire après que les données ont déjà été gravées sur le disque), ce qui a beaucoup plus de chances d'erreur (copie manquante), en particulier si le système utilise peut-être btrfs ou similaire.
la source
rm ~/.bash_history~
de supprimer le fichier de sauvegarde dans le cas de l'OP quand il a déjà été sauvegardéAprès avoir accidentellement saisi quelque chose que vous ne vouliez pas stocker dans l'historique, vous pouvez taper:
unset HISTFILE
Bash ne saura pas où stocker l'historique lorsque vous vous déconnectez. Par conséquent, cela désactivera la journalisation de l'historique pour toute la session.
la source
Mon astuce préférée pour cela est de frapper la flèche vers le haut, de revenir en arrière sur la commande, de taper quelque chose (ce n’est peut-être pas nécessaire), de frapper la flèche vers le bas, de taper "ls", et d’appuyer sur Entrée. Se sent vraiment hokey, mais cela fonctionne réellement. J'ai découvert cela quand je me suis énervé après avoir édité la mauvaise commande de mon historique, puis en la ruinant en ne tapant pas sur ctrl-c pour abandonner l'édition. J'imagine que bash soutient l'histoire révisionniste. ;-)
Ressemble à:
la source
En plus des autres réponses, il peut être pertinent que le mot de passe se trouve également dans la mémoire tampon de défilement du terminal - l’historique du texte affiché - maintenant, et, ce qui est un problème, éventuellement sur le disque dur, si l’émulateur de terminal a sauvegardé le fichier. l'histoire sur le disque. Cela se produit dans KDE si la taille de l'historique est définie sur "scrollback illimité", afin de ne jamais ignorer aucune sortie.
la source
Avec
$<space> command
, une commande n'est pas ajoutée à l'historique, parfois utilela source
ps
.Une autre alternative pour éviter de sauvegarder dans le fichier d’historique (avant de vous déconnecter) est tout simplement de:
et puis déconnectez-vous. Arrêtez l’écriture de l’historique dans le fichier (car le fichier est en lecture seule) afin que toute la session bash soit ignorée et l’ancien historique conservé.
Connectez-vous à nouveau et réinitialisez les autorisations sur
600
(ou non, selon votre paranoïa!).la source
Je vois à plusieurs reprises mentionné
La première partie est certainement vraie, mais vous ne devez pas recourir à l'édition manuelle de .bash_history pour résoudre ce problème. Si vous combinez les deux commandes sur une ligne, cela fonctionne parfaitement:
la source
Beaucoup de réponses ici tentent de supprimer la commande en question de l'historique de la session curr not bas avant de l'écrire
$HISTFILE
(~ / .bash_history par défaut). Cependant, si vous avez définiPROMPT_COMMAND=history -a
la commande avec votre mot de passe, celle-ci est immédiatement écrite$HISTFILE
lorsque l'invite s'affiche une fois la commande terminée. Vous devrez éditer votre$HISTFILE
pour le supprimer.Ce paramètre est couramment utilisé pour entrelacer les commandes de plusieurs sessions bash ouvertes .
la source
Vous voudrez également vérifier les journaux de Syslog. Les connexions non valides seront généralement connectées à syslog.
/ var / log / messages ou l’équivalent pour votre système d’exploitation.
la source