Solusi 1:
Tambahkan baris ini ke pam config Anda yang bertanggung jawab untuk login (auth-sistemnya pada distro berbasis redhat)
session required pam_tty_audit.so enable=*
Untuk mengetahui apa yang telah dilakukan, Anda dapat menggunakan.
ausearch -ts <some_timestamp> -m tty -i
Ini menghasilkan keluaran seperti ini:
type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>
Satu-satunya downside ke ini adalah bisa sedikit sulit untuk dibaca, tetapi ini jauh lebih baik daripada kebanyakan solusi yang diusulkan karena secara teori ini dapat digunakan untuk merekam seluruh sesi, kutil dan semuanya.
Sunting:Oh, dan Anda dapat menggunakan aureport untuk membuat daftar yang dapat lebih membantu.
# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>
Solusi 2:
Solusi terbaik untuk masalah Anda adalah sistem audit bawaan Linux. Gunakan man 8 auditd atau periksa halaman ini untuk informasi lebih lanjut:http://linux.die.net/man/8/auditd.
Selain itu, Anda dapat memeriksa tutorial ini - meskipun sedikit di luar cakupan pertanyaan Anda, tutorial ini menunjukkan cara kerja sistem audit.
Solusi 3:
Anda bisa menggunakan snoopy.
Ini adalah pustaka logging perintah sederhana, dan bukan solusi audit yang tepat (mudah dielakkan). Pengungkapan:Saat ini saya pengelola snoopy.
Solusi 4:
Trik yang kurang dikenal, tetapi yang paling mudah adalah dengan menggunakan kemampuan audit bawaan dari sudo . Sudo dikirimkan dengan sudoreplay perintah yang membuat sesi pemutaran ulang menjadi mudah. Itu bahkan akan menyampaikan vim sesi (seperti yang Anda sarankan).
Berikut cara menggunakannya dalam beberapa langkah mudah:
- Instal
sudoshdi sistem Anda; ini adalah pembungkus shell di sekitarsudoperintah yang membuat penggunasudosendiri (bukanroot) dan dapat digunakan sebagai shell login sistem -
Aktifkan
sudopenebangan. Edit/etc/sudoers.d/sudosh:Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output -
Tambahkan perintah ini ke
/etc/shellsuntuk mengizinkan login menggunakannya:/usr/bin/sudoshKiat :untuk mencegah pengguna menggunakan shell lain untuk masuk, hapus shell lain dari
/etc/shells. -
Perbarui pengguna
foobaruntuk menggunakansudoshshell.chsh -s /usr/bin/sudosh foobar
Untuk informasi lebih detail, lihat:https://github.com/cloudposse/sudosh/