Bagaimana cara mendapatkan notifikasi ketika pengguna lain masuk ke sistem "saya"?

9

Saya tahu whoperintah yang menunjukkan kepada saya semua pengguna yang masuk. Tapi saya ingin entah bagaimana diberitahu ketika seseorang tetapi saya login ke sistem saya. Applet apa saja? Akan lebih baik jika applet menunjukkan jumlah pengguna berbeda yang masuk, yang berarti memiliki shell login dan koneksi ssh yang sudah ada.

matematika
sumber
BTW: bisakah seseorang mengomentari upaya istirahat. Apakah kemudian /etc/profile.d dieksekusi? Saya kira itu tergantung pada terobosan, jadi untuk serangan brute force ssh ini mungkin berlaku, dengan eskalasi hak menjalankan layanan mungkin tidak. Ahh sepertinya pemantauan pengguna bukanlah tugas yang mudah.
matematika

Jawaban:

10

Untuk bagian notifikasi ketika seseorang log in di sistem Anda, Anda bisa mencoba memasukkan sedikit skrip ke dalam /etc/profile.dskrip. Menggunakan notify-send (bagian dari paket libnotify-bin) Anda dapat mencoba ini:

/etc/profile.d/notify_log.sh

notify-send -t 3000 "User logged in" `whoami`

dan kemudian, setiap kali seseorang akan masuk ke sistem Anda, Anda akan diberi tahu.

EDIT: Jadi, itu tidak berfungsi dengan baik :( Jika Anda mengkonfigurasi server mail pada mesin Anda, Anda dapat menggunakan perintah mail sebagai gantinya notify-send.

Tetapi menurut tulisan di sini , solusi yang lebih baik adalah skrip pam_exec .

Cédric Julien
sumber
Ide bagus, tetapi tidak perlu membuatnya dieksekusi dan tidak perlu memiliki shebang, karena file-file di dalamnya /etc/profile.d/bersumber. Hanya shell login (terminal virtual dan login ssh) dan beberapa login GUI yang melakukan inisialisasi profil.
enzotib
@enzotib: terima kasih atas tipsnya, saya mengoreksi jawaban saya :)
Cédric Julien
Ok, saya sudah mencoba tetapi tidak berhasil sejauh ini. Alasannya adalah, bahwa satu pengguna tidak dapat memberi tahu yang lain dengan mudah. Oleh karena itu beberapa variabel lingkungan harus ditetapkan, lihat: g-loaded.eu/2007/11/18/… . Sejauh ini saya memiliki beberapa executable yang berfungsi tetapi tidak ketika saya login!?! Jika saya baru saja source /etc/profile.d/notify_log.shmasuk melalui ssh, notifikasi dikirimkan. Saya kira itu tidak dijalankan dengan benar setelah login. Saya mengamati /var/log/auth.log tanpa hasil. Ada bantuan?
matematika
Saya menemukan alasannya: Saya menggunakan ZSH dan / etc / zsh / zprofile kosong itu seharusnya seharusnya berasal dari / etc / profile yang pada gilirannya harus mencari /etc/profile.d/*.sh, tetapi tidak melakukan apa-apa! > - (.. Saya akan sumber ini secara eksplisit lalu dan memeriksa semua shell yang diinstal, karena saya tidak tahu shell login mana yang digunakan oleh semua pengguna LDAP .. Pokoknya terima kasih.
math
@brubelsabs: oups, saya mengedit jawaban saya dengan solusi lain
Cédric Julien
2

Kami melakukannya dengan membuat file /etc/profile.d/notify.shdengan konten berikut:

#!/bin/sh

sender="[email protected]"
recepient="[email protected]"
subject="Privileged Account logon used"
message="`env`"
    echo "$message" | mail -s "$subject" -r "$sender" -Smtp=mail.example.com "$recepient"

Dengan asumsi mailx diinstal.

Antonio
sumber
Ya, terkadang Anda mungkin melewatkan pemberitahuan desktop, tetapi surat biasanya tetap.
matematika
@Antonio Apakah Anda harus menambahkan skrip ke crontab? Sepertinya tidak berfungsi.
Cokedude