Przypadkowo wpisałem hasło w linii poleceń bash, myląc Last login: ...
wiersz z Wrong password
(bardzo się spieszyłem). Co mam zrobić, żeby zatrzeć ślad?
To, co zrobiłem, to edytowanie .bash_history
i usuwanie obrażającej linii (musiałem ponownie się zalogować, aby zobaczyć hasło pojawiające się w pliku, abym mógł je usunąć, i ponownie się zalogować, aby zniknęło z historii dostępnej pod klawiszem UPARROW).
Czy jest inne miejsce, w którym można zapisać historię poleceń? System to CentOS 6.5.
linux
command-line
bash
centos
MaDa
źródło
źródło
/dev/null
.ssh-keygen -f id_rsa -p
.Odpowiedzi:
Możesz usunąć z
bash
historii tylko niepoprawną linię , zamiast wyczyścić całą historię. Po prostu usuń linię z-d
flagą, a następnie zapisz (zapisz) nową historię z-w
flagą:źródło
Składają się na to dwie części:
bash
przechowuje historię w pliku,~/.bash_history
który jest domyślnie zapisywany na końcu sesjihistory
które są przechowywane w pamięciAby być bezpiecznym, musisz usunąć go z sesji:
i w razie potrzeby obetnij plik historii:
Jeśli sesja, w której wpisałeś hasło, jest nadal otwarta, innym sposobem na zakrycie śladu jest ustawienie
HISTFILE
zmiennej na urządzenie zerowe, aby historia nie była zapisywana~/.bash_history
po zakończeniu sesji:źródło
shred
pliku lub w inny sposób go zastąpić wiele razy?HISTFILE=
wystarczy. Odbash(1)
: Jeśli nieustawione, historia poleceń nie jest zapisywana po wyjściu powłoki.Ponieważ bash (przynajmniej wszystkie historyczne i bieżące wersje, o których wiem) nie zapisuje automatycznie historii do momentu wyjścia, ogólnie obowiązującą strategią po wpisaniu polecenia, którego nie chcesz nigdy zapisywać, jest natychmiastowe wpisanie:
To zabija powłokę
SIGKILL
, której nie można złapać, więc nie ma możliwości ocalenia niczego przy wyjściu.Większość innych podejść polega na szorowaniu po fakcie (tj. Po tym, jak dane już trafiły na dysk), co ma znacznie większą szansę na błąd (brak kopii), szczególnie jeśli system może używać btrfs lub podobnego.
źródło
rm ~/.bash_history~
aby usunąć plik kopii zapasowej w przypadku PO, gdy został już zapisanyPo przypadkowym wpisaniu czegoś, czego nie chcesz przechowywać w historii, możesz wpisać:
unset HISTFILE
Bash nie będzie wiedział, gdzie przechowywać historię po wylogowaniu, więc w efekcie spowoduje to wyłączenie rejestrowania historii dla całej sesji.
źródło
Moją ulubioną sztuczką jest uderzenie w strzałkę w górę, cofanie się nad poleceniem, wpisanie czegoś (może nie być konieczne), naciśnięcie strzałki w dół, wpisanie „ls” i naciśnięcie klawisza Enter. Czuje się naprawdę hokey, ale tak naprawdę działa. Przekonałem się, kiedy zirytowałem się po edycji niewłaściwego polecenia w mojej historii, a następnie zrujnowaniu go, nie naciskając klawisza Ctrl-C, aby przerwać edycję. Myślę, że bash obsługuje historię rewizjonistyczną. ;-)
Wygląda jak:
źródło
Oprócz innych odpowiedzi może być istotne, że hasło znajduje się również w buforze przewijania terminala - historii wyświetlanego tekstu - teraz, a co więcej, prawdopodobnie na dysku twardym, jeśli emulator terminala zapisał historia na dysk. Dzieje się tak w konsoli KDE, gdy rozmiar historii jest ustawiony na „nieograniczone przewijanie”, aby nigdy nie odrzucać żadnych wyników.
źródło
Za
$<space> command
pomocą polecenia nie dodaje się do historii, czasem jest to przydatneźródło
ps
.Jeszcze inną alternatywą, aby uniknąć zapisywania do pliku historii (przed wylogowaniem), jest po prostu
a następnie wyloguj się. Zatrzymaj zapisywanie historii do pliku (ponieważ plik jest tylko do odczytu), aby cała sesja bash została odrzucona, a poprzednia historia została zachowana.
Zaloguj się ponownie i zresetuj uprawnienia do
600
(lub nie, w zależności od tego, jak jesteś paranoikiem!).źródło
Widzę wielokrotnie wspomniane
Pierwsza część jest zdecydowanie prawdą, ale nie musisz uciekać się do ręcznej edycji .bash_history, aby to naprawić. Jeśli połączysz dwa polecenia w jednym wierszu, działa to doskonale:
źródło
Wiele odpowiedzi tutaj próbuje usunąć dane polecenie z historii sesji curren't bash, zanim zostanie zapisane
$HISTFILE
(domyślnie ~ / .bash_history). Jeśli jednak ustawiszPROMPT_COMMAND=history -a
polecenie za pomocą hasła, zostanie ono natychmiast zapisane,$HISTFILE
gdy wyświetli się monit po zakończeniu polecenia. Musisz go edytować,$HISTFILE
aby go usunąć.To ustawienie jest powszechnie używane do przeplatania poleceń z wielu otwartych sesji bash .
źródło
Będziesz także chciał sprawdzić dzienniki syslog. Niepoprawne dane logowania będą na ogół rejestrowane w syslog.
/ var / log / messages lub odpowiednik dla twojego systemu operacyjnego.
źródło