Réponses:
Vous pouvez trouver les événements d'écran de déverrouillage à l'aide de la commande suivante:
grep screen /var/log/auth.log*
Mais il n'est pas si simple de trouver les événements de l'écran de verrouillage car, par défaut, il n'existe aucun journal pour ces événements (pour autant que je sache).
Quoi qu'il en soit, vous pouvez exécuter la commande suivante pour consigner les événements de l'écran de verrouillage:
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | ( while true; do read X; if echo "$X" | grep "boolean true" &> /dev/null; then echo "Screen locked on $(date)" > $HOME/lock_screen.log; fi; done )
dans le ~/lock_screen.log
dossier.
Si vous aimez la commande ci-dessus, utilisez-la dans un script et exécutez le script automatiquement au démarrage.
Les références:
dbus-monitor --session "type='signal',interface='com.ubuntu.Upstart0_6'"
est signal time=1497336035.520628 sender=org.freedesktop.DBus -> destination=:1.140 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired string ":1.140" signal time=1497336035.520706 sender=org.freedesktop.DBus -> destination=:1.140 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost string ":1.140"
, alors rien quand je verrouille ou déverrouille
FWIW: ce qui fonctionne pour moi sur Ubuntu 16.04.4 LTS avec Unity, c'est la surveillance de DBUS avec la commande suivante:
dbus-monitor --session "type='signal',interface='com.canonical.Unity.Session'"
... puis surveillance des événements "Verrouillé" et "Déverrouillé". Exemple de sortie:
heure du signal = 1525269138.855107 expéditeur =: 1.51 -> destination = (destination nulle) série = 86735 chemin = / com / canonical / Unity / Session; interface = com.canonical.Unity.Session; membre = LockRequested
heure du signal = 1525269139.409261 expéditeur =: 1.51 -> destination = (destination nulle) série = 86892 chemin = / com / canonical / Unity / Session; interface = com.canonical.Unity.Session; membre = verrouillé
heure du signal = 1525269151.238899 expéditeur =: 1.51 -> destination = (destination nulle) série = 86937 chemin = / com / canonical / Unity / Session; interface = com.canonical.Unity.Session; membre = UnlockRequested
heure du signal = 1525269151.791874 expéditeur =: 1.51 -> destination = (destination nulle) série = 86938 chemin = / com / canonical / Unity / Session; interface = com.canonical.Unity.Session; membre = Déverrouillé
C'est ce que j'utilise dans Ubuntu 16.04. Il se connecte au système syslog.
Ajoutez à votre dossier de départ, marquez comme exécutable, puis utilisez gnome-session-properties
pour le configurer pour qu'il s'exécute au démarrage de la session.
#!/bin/bash
exit_report(){
logger "$(date) Lockscreen Monitoring Terminated."
}
trap "exit_report; exit;" 0
lockmon() {
adddate() {
while IFS= read -r line; do
echo $line | grep string | grep '"start"' -q
if [ $? -eq 0 ] ; then
logger "$(date) Screen locked"
fi
echo $line | grep string | grep '"stop"' -q
if [ $? -eq 0 ] ; then
logger "$(date) Screen unlocked"
fi
done
}
logger "$(date) Lockscreen Monitoring Started."
dbus-monitor --session "type='signal',interface='com.ubuntu.Upstart0_6.Instance'" | adddate
}
lockmon
Basé sur une réponse similaire pour les systèmes Fedora .
cat screen /var/log/auth.log | grep unlock
- pas de sudo nécessaire.