Hari ini saya perhatikan bahwa sejarah bash saya dihapus sepenuhnya. Saya belum menjalankan history -c
atau menghapus .bash_history
file. Selain menghapus .bash_history
file dan history -c
, bagaimana riwayat bash dapat dihapus?
bash
command-history
nik.1
sumber
sumber
>.bash_history
. Mungkin seseorang ada di akun Anda dan mencoba menyembunyikan jejaknya. Periksa waktu masuk yang tidak biasa denganlast
, cari melalui/var/log/auth.log
(tergantung pada sistem Anda).Jawaban:
Saat menutup beberapa instance bash pada saat yang sama, ada kondisi ras yang diketahui yang dapat menyebabkan riwayat dihapus. Ini terjadi karena tidak ada penguncian yang digunakan ketika file riwayat bash ditulis.
Chet Ramey (pengelola bash saat ini) memberikan ringkasan yang bagus tentang kondisi untuk masalah ini:
Utas milis ini dari bug-bash berisi diskusi yang layak tentang masalah, kemungkinan solusi, dan masalah seputar ini.
Ada juga beberapa kemungkinan lain:
HISTSIZE
atauHISTFILESIZE
diatur ke 0history-size
disetel ke 0> "$HISTFILE"
atau serupa)Dalam kasus terakhir, Anda mungkin ingin memeriksa bahwa seseorang belum mengakses akun Anda dan mencoba menyembunyikan jejak mereka dengan cara yang kasar. Lihatlah
last
,/var/log/auth
(atau/var/log/secure
pada CentOS / RHEL), dan jika Anda memilikinya, semua proses akuntansi dan / atau perangkat lunak audit yang mungkin telah Anda instal.sumber
Bagaimana saya tidak sengaja menghapus riwayat pesta saya:
Saya memutar skrip readline terminal alternatif saya sendiri dari prinsip pertama: https://tiswww.cwru.edu/php/chet/readline/rluserman.html
dan kemudian mengujinya di terminal. GNU Readline memiliki ukuran sejarah dan instruksi pelestarian sejarah yang terpasang di dalamnya, sehingga ukuran hist dapat di-default, dan dengan demikian semua riwayat Anda terhapus.
Pemulihan sejarah jika dibiarkan dalam memori:
Jika Anda menangkapnya sebelum reboot, atau jika terminal dibiarkan terbuka dari sebelum clear, Anda mungkin dapat menemukan riwayat Anda dalam memori. Jalankan
history | cut -c 8- > histback_user1.txt
pada semua terminal yang dibiarkan terbuka dan untuk setiap pengguna. Jika itu menghasilkan file dengan histori panjang Anda, maka Anda dapat menggantinya~/.bash_history
denganhistback_user1.txt
. Periksa juga riwayat semua pengguna yang baru-baru ini masuk ke sistem serta riwayat root. Sangat mudah untuk secara tidak sengaja menghapus riwayat bash dalam banyak keadaan, jadi jika Anda ingin memastikan tidak ada kehilangan riwayat, Anda memerlukan skrip cadangan harian.sumber