GNU/Linux >> Tutoriales Linux >  >> Linux

Registro de eventos de la pantalla de bloqueo

Aquí hay otra solución usando "dbus-monitor". Un pequeño script bash registrando la actividad de la pantalla.

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

Intenta echar un vistazo a /var/log/auth.log . Debería ver algunos mensajes relacionados de PAM y/o la aplicación de protector de pantalla.


Sí, no parece estar registrado en ningún lado para usted. @tutuDajuju tiene una buena solución, así que pensé en portarla a bash (y eliminar la dependencia del uso de gnome, esto debería funcionar independientemente del entorno de escritorio) para aquellos que estén interesados.
Si tiene esto ejecutándose en segundo plano y lo canaliza a un archivo de registro, tendrá su 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

Esto funcionó bien en mi Fedora con KDE, pero supongo que debería funcionar en otras cosas como Debian con gnome, etcétera.
Puede tener problemas si su grep no es compatible con -P (en cuyo caso puede usar sed ).


Linux
  1. Habilite el registro de haproxy en rsyslog

  2. Cómo habilitar el registro de consultas de MySQL/MariaDB

  3. Linux:¿entiende cómo iniciar sesión en Linux?

  4. Comprobación de repositorios y registros de Linux

  5. Prepárese para eventos de alto tráfico

Guía del programador de eventos y eventos de MySQL

Postfix:habilite el registro del asunto del correo electrónico en el registro de correo

Guía completa de registro de Linux

¿Cómo habilitar el inicio de sesión extendido en Exim?

Mostrar el registro de eventos de Mitmproxy en Linux

¿Puedo registrar la actividad de vi?