Perintah yang sangat kuat dan keren di Bash adalah sejarah. Sederhananya, secara default, Bash akan menyimpan riwayat semua perintah yang Anda ketik. Nilai variabel HISTSIZE menentukan jumlah peristiwa yang disimpan dalam daftar riwayat selama sesi. Meskipun nilai default untuk HISTSIZE adalah 500, Anda mungkin ingin mengaturnya ke nilai yang lebih nyaman, seperti 10000. Saat Anda keluar dari shell, perintah yang terakhir dieksekusi disimpan dalam file yang diberikan oleh variabel HISTFILE (default adalah .bash_history di direktori home Anda). Posting ini menguraikan langkah-langkah untuk menyimpan riwayat perintah pengguna tertentu di Linux.
1. Buat monitor grup baru. Tambahkan pengguna perlu dipantau ke dalamnya sebagai grup sekunder.
# groupadd monitor # usermod -a -G monitor [user]
Misalnya:
# usermod -a -G monitor opc # id opc uid=1000(opc) gid=1000(opc) groups=1000(opc),1002(admins),1003(monitor)
2. Buat direktori /var/log/shelllogs tempat riwayat shell akan disimpan.
# mkdir /var/log/shelllogs # chown root:monitor /var/log/shelllogs # chmod 770 /var/log/shelllogs # chmod +t /var/log/shelllogs
3. Buat skrip di /etc/profile.d dengan format riwayat tweak sehingga akan diekspor setiap kali pengguna login.
# cat /etc/profile.d/history.sh export HISTSIZE=10000 export HISTTIMEFORMAT='%F %T ' export HISTFILE=/var/log/shelllogs/$(who am i | awk '{print $1}';exit)-as-$(whoami)-$(date +%F-%T) export PROMPT_COMMAND='history -a'
4. Edit /etc/bashrc dan tambahkan baris berikut di akhir file.
test "$(ps -ocommand= -p $PPID | awk '{print $1}')" == 'script' || (script -f /var/log/shelllogs/$(who am i | awk '{print $1}';exit)-as-$(whoami)-$(date +%F-%T)_console.log)
Masuk ke server yang sama melalui sesi ssh/putty lain untuk memastikan file sedang dibuat.