Perusahaan kecil kami menjalankan Ubuntu Server 11.10, di mana beberapa orang memiliki akses SSH. Terminal yang sebenarnya kadang-kadang digunakan juga. Bagaimana kita bisa secara lokal mencatat semua perintah Bash berjalan, bersama dengan pengguna dan cap waktu?
Kami dapat berasumsi bahwa tidak ada yang jahat dan secara aktif berusaha menghindari pencatatan, tetapi kami masih lebih memilih pengguna untuk tidak memiliki akses tulis langsung ke file log mereka. Sesi simultan harus ditangani dengan benar.
PROMPT_COMMAND
ke shell non-bash.Suatu sistem akuntansi proses dapat membantu dalam hal ini, khususnya paket acct yang menyediakan perintahcomm dan ac terakhir.
Perintah ac mencetak statistik tentang waktu koneksi pengguna, dalam jam. Ini adalah jumlah waktu yang pengguna telah terhubung ke sistem, baik jarak jauh melalui SSH atau terminal serial, atau saat berada di konsol.
Perintah lastcomm menampilkan informasi tentang perintah yang dieksekusi sebelumnya. Entri terbaru diberikan di bagian atas daftar. Juga ditampilkan jumlah total waktu CPU yang digunakan setiap proses.
Tutorial lama yang mungkin bermanfaat ada di sini:
http://www.linuxjournal.com/article/6144?page=0,1
Perintah akuntansi lain seperti yang terakhir dan seterusnya dapat ditemukan di tutorial ini:
http://www.techrepublic.com/article/system-accounting-in-linux/1053377
sumber
Anda bisa menggunakan snoopy .
Logger Snoopy mungkin sesuai dengan tujuan Anda dengan baik. Ini tidak dimaksudkan sebagai solusi penebangan yang tidak terhindarkan, tetapi lebih merupakan alat yang berguna untuk admin yang rajin yang lebih suka melacak tindakan mereka sendiri.
Pengungkapan: Saya pengelola snoopy.
sumber
Anda dapat menemukan di sini script untuk log semua pesta perintah / built-in ke dalam teks-file atau syslog server yang tanpa menggunakan patch atau alat executable khusus.
Sangat mudah digunakan, karena ini adalah skrip shell sederhana yang perlu dipanggil sekali saat inisialisasi bash .
Ini gratis dan saya harap ini sesuai dengan kebutuhan Anda.
sumber
Untuk menangani beberapa sesi, jangan terlalu menulis file histori, Anda harus memasukkan "shopt -s histappend" di file startup Bash. Lihat, juga pertanyaan ini tentang masalah yang sama.
sumber
coba ini (solusi di atas tidak akan bekerja 100% dengan bash 4.3):
ini melakukan pencatatan DAN mencegah pencatatan cap waktu yang digunakan untuk file riwayat bash. perangkap diperlukan, karena bash akan mengirim sinyal ke "subjob" setelah menekan strg + c beberapa kali (diuji dengan bash 4.3). ini akan memaksa keluar dari pengguna saat ini (mis. login dengan sudo)
sumber
Anda juga dapat mencoba menginstal ACCT. Acct menyimpan jejak audit terperinci tentang apa yang dilakukan pada sistem Linux Anda.
sumber