Сегодня я заметил, что моя история bash полностью очищена. Я не выполнил и history -c
не удалил .bash_history
файл. Помимо удаления .bash_history
файла и history -c
как очистить историю bash?
bash
command-history
nik.1
источник
источник
>.bash_history
. Возможно, кто-то был в вашем аккаунте и пытался скрыть свои следы. Проверьте необычное время входа в систему с помощью функцииlast
поиска/var/log/auth.log
(в зависимости от вашей системы).Ответы:
При одновременном закрытии нескольких экземпляров bash возникает известное состояние гонки, которое может привести к очистке истории. Это происходит потому, что при записи файла истории bash блокировка не используется.
Чет Рэйми (текущий сопровождающий bash) дал хорошее резюме условий для этой проблемы:
Эта ветка списка рассылки bug-bash содержит достойное обсуждение проблем, возможных решений и проблем, связанных с этим.
Есть также некоторые другие возможности:
HISTSIZE
илиHISTFILESIZE
был установлен на 0history-size
была установлена на 0> "$HISTFILE"
или аналогичной)В последнем случае вы можете проверить, что кто-то не имеет доступа к вашей учетной записи и пытается скрыть свои треки грубым способом. Посмотрите
last
,/var/log/auth
(или/var/log/secure
на CentOS / RHEL), и если у вас есть, любое программное обеспечение учета и / или аудита процессов, которое вы, возможно, установили.источник
Как я случайно удалил мою историю bash:
Я катал свой собственный альтернативный скрипт readline терминала из первых принципов: https://tiswww.cwru.edu/php/chet/readline/rluserman.html
а затем проверить его в терминале. В GNU Readline встроены инструкции по размеру истории и сохранению истории, поэтому размер истории может быть установлен по умолчанию, и, таким образом, вся ваша история будет уничтожена.
Восстановление истории, если оставить в памяти:
Если вы поймали его до перезагрузки или если терминал был оставлен открытым до очистки, вы сможете найти свою историю в памяти. Запустите
history | cut -c 8- > histback_user1.txt
все открытые терминалы и для каждого пользователя. Если при этом создается файл с расширенной историей, вы можете заменить его~/.bash_history
наhistback_user1.txt
. Также проверьте историю всех пользователей, недавно вошедших в систему, а также историю root. Легко случайно очистить историю bash при многих обстоятельствах, поэтому, если вы хотите быть уверенным в том, что история не потеряна, вам необходим ежедневный скрипт резервного копирования.источник