GNU/Linux >> Belajar Linux >  >> Linux

Mencatat peristiwa layar kunci

Ini solusi lain menggunakan "dbus-monitor". Sedikit aktivitas layar logging skrip bash.

exit_report(){
echo "$(date) Monitoring Terminated."
}
trap "exit_report; exit;" 0

lockmon() {
adddate() {
    while IFS= read -r line; do
      echo "$(date) $line" | grep "boolean" | sed 's/   boolean true/Screen Locked/' | sed 's/   boolean false/Screen Unlocked/'
    done
}
echo "$(date) Monitoring Started."
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | adddate

}

lockmon >> lock_screen.log

Coba lihat /var/log/auth.log . Anda akan melihat beberapa pesan terkait dari PAM dan/atau aplikasi screensaver.


Ya, sepertinya tidak dicatat di mana pun untuk Anda. @tutuDajuju memiliki solusi yang bagus jadi saya pikir saya akan mem-portingnya ke bash (dan menghapus ketergantungan pada penggunaan gnome, ini akan berfungsi terlepas dari lingkungan desktop) bagi mereka yang tertarik.
Jika Anda menjalankan ini di latar belakang dan menyalurkannya ke file log, Anda akan memiliki log Anda.

#!/bin/bash

#prints out, among other things;
#      string "org.kde.screensaver"
#transform it to 'org.kde.screensaver'
service=$(\
    dbus-send \
        --session \
        --dest=org.freedesktop.DBus \
        --type=method_call \
        --print-reply \
        /org/freedesktop/DBus org.freedesktop.DBus.ListNames \
    | grep -o '[^"]*.screensaver'
)

#prints out, among other things;
#method bool org.freedesktop.ScreenSaver.SetActive(bool e)
#transform it to 'org.freedesktop.ScreenSaver'
interface=$(
    qdbus \
        $service /ScreenSaver \
    | grep -oP '[^ ]*(?=.SetActive)'
)

path='/ScreenSaver'

#monitor it with a while loop
dbus-monitor "type='signal',interface='$interface',member='ActiveChanged',path='$path'" \
| while read -r line; do
    #ignore the metadata and pull the 'boolean <true/false>' line
    read line

    #check if it is set to true
    if echo $line | grep -q 'true'; then
        echo "Locked at $(date)"
    else
        echo "Unlocked at $(date)"
    fi
done

Ini berjalan dengan baik di Fedora saya dengan KDE, tapi saya kira ini harus bekerja pada hal-hal lain seperti Debian dengan gnome dan lain-lain.
Anda mungkin mengalami masalah jika grep Anda tidak mendukung -P (dalam hal ini Anda cukup menggunakan sed ).


Linux
  1. Aktifkan pencatatan haproxy di rsyslog

  2. Nonaktifkan masuk dengan akun root

  3. Memeriksa Repositori dan Logging Linux

  1. Bersiaplah untuk acara dengan lalu lintas tinggi

  2. Linux non-blocking fifo (on demand logging)

  3. Apa arti acara perf cache?

  1. Cara Mengaktifkan Pencatatan Kueri MySQL/MariaDB

  2. Tampilkan Log Peristiwa Mitmproxy di Linux

  3. Verifikasi konfigurasi dnsmasq