GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mencatat setiap perintah yang dijalankan oleh pengguna?

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:

  1. Instal sudosh di sistem Anda; ini adalah pembungkus shell di sekitar sudo perintah yang membuat pengguna sudo sendiri (bukan root ) dan dapat digunakan sebagai shell login sistem
  2. Aktifkan sudo penebangan. Edit /etc/sudoers.d/sudosh : Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. Tambahkan perintah ini ke /etc/shells untuk mengizinkan login menggunakannya: /usr/bin/sudosh

    Kiat :untuk mencegah pengguna menggunakan shell lain untuk masuk, hapus shell lain dari /etc/shells .

  4. Perbarui pengguna foobar untuk menggunakan sudosh shell. chsh -s /usr/bin/sudosh foobar

Untuk informasi lebih detail, lihat:https://github.com/cloudposse/sudosh/


Linux
  1. Cara Membuat Pengguna Sudo di Debian

  2. Cara membuat pengguna di Linux[Manajemen pengguna]

  3. Cara menggunakan Sudo untuk mengizinkan pengguna non-root menjalankan perintah tertentu

  1. Cara mencatat setiap perintah shell di Linux

  2. Bagaimana cara melihat riwayat perintah pengguna lain di Linux?

  3. Bagaimana cara membiarkan pengguna menjalankan perintah yang berisi tanda kutip di sudoers?

  1. Bagaimana Cara Mencatat Setiap Perintah yang Diketik Ke Bash Dan Setiap Operasi File?

  2. Bagaimana Cara Anda Mencatat Setiap Perintah yang Diketik?

  3. Bagaimana Mengetahui apakah Pengguna memiliki Hak Sudo