GNU/Linux >> Linux Esercitazione >  >> Linux

Registrazione degli eventi della schermata di blocco

Ecco un'altra soluzione che utilizza "dbus-monitor". Un po' di attività della schermata di registrazione dello script 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

Prova a dare un'occhiata a /var/log/auth.log . Dovresti vedere alcuni messaggi correlati da PAM e/o dall'applicazione salvaschermo.


Sì, non sembra essere registrato da nessuna parte per te. @tutuDajuju ha una buona soluzione, quindi ho pensato di portarlo su bash (e rimuovere la dipendenza dall'uso di gnome, dovrebbe funzionare indipendentemente dall'ambiente desktop) per coloro che sono interessati.
Se lo hai in esecuzione in background e lo invii in un file di registro, avrai il tuo registro.

#!/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

Funzionava bene sulla mia Fedora con KDE, ma immagino che dovrebbe funzionare su altre cose come Debian con gnome et cetera.
Potresti avere problemi se il tuo grep non supporta -P (nel qual caso puoi semplicemente usare sed ).


Linux
  1. Linux:capisci l'accesso a Linux?

  2. Ssh – Registrazione dei tentativi di accesso Ssh?

  3. Registrazione dei dati VMStat su file

  4. Cosa significano gli eventi cache perf?

  5. Haproxy non registra con rsyslog

Guida agli eventi MySQL e all'utilità di pianificazione degli eventi

Postfix:abilita la registrazione dell'oggetto dell'e-mail nel log di posta

Guida completa alla registrazione di Linux

Come abilitare l'accesso esteso in Exim?

Visualizza il registro eventi di Mitmproxy su Linux

Posso registrare l'attività di vi?