Aujourd'hui, j'ai remarqué que mon historique de bash était complètement effacé. Je n'ai ni exécuté history -c
ni supprimé le .bash_history
fichier. Mis à part la suppression du .bash_history
fichier et history -c
, comment effacer l' historique de bash?
bash
command-history
nik.1
la source
la source
>.bash_history
. Peut-être que quelqu'un était dans votre compte et a essayé de cacher ses traces. Vérifiez les heures de connexion inhabituelles aveclast
, effectuez une recherche/var/log/auth.log
(en fonction de votre système).Réponses:
Lors de la fermeture de plusieurs instances bash en même temps, une condition de concurrence connue peut entraîner la suppression de l'historique. Cela se produit car aucun verrouillage n'est utilisé lors de l'écriture du fichier d'historique bash.
Chet Ramey (le responsable de bash actuel) a donné un bon résumé des conditions de ce problème:
Ce fil de liste de diffusion de bug-bash contient une discussion décente sur les problèmes, les solutions possibles et les préoccupations entourant cela.
Il existe également d'autres possibilités:
HISTSIZE
ou aHISTFILESIZE
été défini sur 0history-size
été définie sur 0> "$HISTFILE"
ou similaire)Dans ce dernier cas, vous voudrez peut-être vérifier que quelqu'un n'a pas accédé à votre compte et essaie de masquer ses traces de manière grossière. Jetez un oeil à
last
,/var/log/auth
(ou/var/log/secure
sur CentOS / RHEL), et si vous l' avez, tout processus comptable et / ou un logiciel d'audit vous pouvez avoir installé.la source
Comment j'ai accidentellement supprimé mon historique de bash:
Je roulais mon propre script alternatif de lecture de terminal à partir des premiers principes: https://tiswww.cwru.edu/php/chet/readline/rluserman.html
puis le tester dans un terminal. Cette GNU Readline a une taille d'historique et des instructions de préservation d'historique intégrées, donc la taille d'hist peut être par défaut, et ainsi tout votre historique est effacé.
Récupération de l'historique si laissé en mémoire:
Si vous l'attrapez avant un redémarrage, ou si un terminal a été laissé ouvert avant l'effacement, vous pourrez peut-être retrouver votre historique en mémoire. Fonctionne
history | cut -c 8- > histback_user1.txt
sur tous les terminaux laissés ouverts et pour chaque utilisateur. Si cela produit un fichier avec votre historique étendu, vous pouvez le remplacer~/.bash_history
parhistback_user1.txt
. Vérifiez également l'historique de tous les utilisateurs récemment connectés au système ainsi que l'historique de root. Il est facile d'effacer accidentellement l'historique de bash dans de nombreuses circonstances, donc si vous voulez être sûr de ne pas perdre d'historique, vous avez besoin d'un script de sauvegarde quotidien.la source