Dzisiaj zauważyłem, że moja historia bash jest całkowicie wyczyszczona. Nie wykonałem ani history -c
nie usunąłem .bash_history
pliku. Oprócz usunięcia .bash_history
pliku i history -c
jak można wyczyścić historię bash?
bash
command-history
nik.1
źródło
źródło
>.bash_history
. Może ktoś był na twoim koncie i próbował ukryć swoje ślady. Sprawdź nietypowe czasy logowania za pomocąlast
, szukaj przez/var/log/auth.log
(w zależności od systemu).Odpowiedzi:
Podczas zamykania wielu instancji bash w tym samym czasie znany jest wyścig, który może spowodować wyczyszczenie historii. Dzieje się tak, ponieważ podczas zapisywania pliku historii bash nie jest używane blokowanie.
Chet Ramey (obecny opiekun bash) dobrze podsumował warunki tego problemu:
Wątek listy mailingowej z bug-bash zawiera przyzwoitą dyskusję na temat problemów, możliwych rozwiązań i obaw związanych z tym.
Istnieją również inne możliwości:
HISTSIZE
lubHISTFILESIZE
został ustawiony na 0history-size
został ustawiony na 0> "$HISTFILE"
lub podobnego)W tym drugim przypadku możesz sprawdzić, czy ktoś nie uzyskiwał dostępu do Twojego konta i próbuje w brutalny sposób ukryć swoje utwory. Przyjrzeć
last
,/var/log/auth
(lub/var/log/secure
na CentOS / RHEL), a jeśli masz to, co stanowi jakiegokolwiek procesu i / lub oprogramowanie audyt może masz zainstalowane.źródło
Jak przypadkowo usunąłem historię bash:
Toczyłem własny alternatywny skrypt readline terminala według pierwszych zasad: https://tiswww.cwru.edu/php/chet/readline/rluserman.html
a następnie przetestowanie go w terminalu. Ten GNU Readline ma wbudowany rozmiar historii i instrukcje zachowania historii, więc rozmiar hist może być ustawiony domyślnie, a tym samym cała twoja historia jest zdmuchnięta.
Odzyskiwanie historii pozostawionej w pamięci:
Jeśli złapiesz go przed ponownym uruchomieniem lub jeśli terminal został otwarty przed wyczyszczeniem, być może będziesz w stanie znaleźć swoją historię w pamięci. Uruchom
history | cut -c 8- > histback_user1.txt
na wszystkich otwartych terminalach i dla każdego użytkownika. Jeśli to tworzy plik ze swojej bogatej historii, można wymienić~/.bash_history
zhistback_user1.txt
. Sprawdź także historię wszystkich użytkowników ostatnio zalogowanych do systemu, a także historię roota. W wielu okolicznościach łatwo jest przypadkowo wyczyścić historię bash, więc jeśli chcesz mieć pewność, że nie stracisz historii, potrzebujesz codziennego skryptu kopii zapasowej.źródło