Perusahaan saya mengharuskan setiap kali pengguna masuk ke server produksi alasan orang itu masuk dan perubahan yang ingin dilakukan oleh pengguna harus dicatat. Tim saya ingin melakukan ini, tetapi mudah untuk dilupakan. Saya ingin membantu mereka mengingat. Saya dianggap motd, tetapi menginginkan sesuatu yang sedikit lebih kuat.
Pikiran pertama saya adalah mengubah shell pengguna ke skrip yang melakukan sesuatu seperti
vim /logs/logindate.txt
bash -l
Apakah ada teknik standar yang lebih baik atau lebih?
Catatan: Idenya adalah bahwa pengguna ini adalah sysadmin dan ingin membuat entri log tanpa menumbangkan sistem - mereka hanya sering lupa melakukannya. Jadi, jika mereka bisa ctrl-c, yah ... kami anggap mereka tidak akan melakukannya.
Jawaban:
Lihatlah pam_exec.so . Anda dapat menjalankan skrip saat masuk di antarmuka sesi autentikasi sistem PAM. Script dijalankan sebagai root sebelum pengguna mendapatkan shell, jadi skrip tidak dapat mengambil input
read
? Anda dapat mencoba, dan menggunakannyaread
untuk mendapatkan alasan dari pengguna dan mencatatnya di syslog denganlogger
pernyataan. (Saya telah menghilangkan di bawah ini, tetapi Anda dapat menjebak CTRL + C untuk mencegah siapa pun keluar tanpa alasan.) $ PAM_USER akan disetel ke orang yang masuk, sehingga Anda dapat memasukkannya dalam pernyataan logger.Contoh:
Di bagian atas sesi di /etc/pam.d/system-auth:
Dan / usr / local / sbin / getreason:
Maaf jika ini tidak bekerja dengan sempurna. Saya tidak mengujinya, tetapi baru-baru ini melakukan hal serupa. (Itu tidak menangkap input.)
Sunting: Semakin saya memikirkan hal ini, semakin saya tidak berpikir itu akan berhasil karena tahap di mana ia berjalan.
getreason
Skrip yang sama harus berfungsi setelah Anda ganti$PAM_USER
dengan$(logname)
, tetapi mungkin harus dijalankan pada/etc/profile
. (Uji shell interaktif, pertama.)Saya akan membiarkan kedua opsi tersebut naik karena setidaknya Anda dapat berpikir ke arah yang benar jika tidak ada yang lain.
sumber
Alternatifnya adalah solusi manajemen akun istimewa, di mana daripada memberikan akses administrator dengan akun mereka sendiri, akun admin disimpan secara escrow oleh pihak ketiga dan prosedur wajib Harus diikuti sebelum administrator dapat mengakses sistem produksi http: // en. m.wikipedia.org/wiki/Privileged_Identity_Management
sumber
Cara lain untuk mencapai ini adalah dengan memiliki fasilitas logging-terpusat Anda (saya pikir Logstash, tetapi Anda dapat melakukan ini dengan cara lain) ambil auth.log Anda pada sistem produksi, masukkan itu ke dalam aplikasi di mana orang dapat mencatat pembenaran mereka .
sumber
Cara saya melihat ini diterapkan pada pelanggan yang menjalankan HP Server Automation * adalah bahwa mereka bergantung pada pencatatan bawaan alat dengan kombinasi langkah-langkah persetujuan (saya pernah mengunjungi beberapa pelanggan di mana tidak ada sudo atau root privs kecuali di Dev ).
Persetujuan dapat dilakukan melalui sesuatu seperti Remedy and Operations Orchestration, atau login administratif di dalam SA, dll.
Bahwa semua makhluk kata, di luar perusahaan otomatisasi dan manajemen alat-alat, @ Aaron Copley 's jawabannya adalah pilihan yang sangat baik.
* Saya adalah HPSA senior, HPOO, dan aspek lain dari konsultan suite otomatisasi HP
sumber
Sambil mencari solusi, saya membaca jawaban Aaron Copley dan berpikir: "Bagaimana jika saya mengganti shell pengguna saya?"
Saya berhasil melakukannya di mesin Ubuntu 14.04 saya:
Pada skrip Anda, Anda dapat menangkap alasan login dengan sederhana. Milik saya seperti ini:
Satu hal yang harus Anda perhatikan: skrip tidak dijalankan sebagai root, jadi Anda mungkin harus memberi pengguna beberapa izin untuk membuat ini berfungsi.
sumber