Fórum Root.cz

Hlavní témata => Desktop => Téma založeno: ZAJDAN 23. 04. 2018, 15:08:51

Název: Logovaní zamčení a odemčení obrazovky
Přispěvatel: ZAJDAN 23. 04. 2018, 15:08:51
Ahoj....
skopšil jsem si script který loguje zamčení obrazovky (v mém případě KDE)
Kód: [Vybrat]
dbus-monitor --session
        "type='signal',interface='org.freedesktop.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 )

zajimalo by mne, jak logovat i odemčení...lze menit i ten parametr interface? aspon tipuji ze tam by se to dalo definovat
Název: Re:logovaní zamčení a odemčení obrazovky
Přispěvatel: Jenda 23. 04. 2018, 15:28:38
Při odemčení se téměř určitě ověřuje heslo přes PAM, a proto můžeš do správného /etc/pam.d/ dát něco jako

auth sufficient pam_exec.so expose_authtok quiet seteuid /muj/skript.sh
Název: Re:logovaní zamčení a odemčení obrazovky
Přispěvatel: Pavouk106 23. 04. 2018, 15:29:30
Ahoj....
skopšil jsem si script který loguje zamčení obrazovky (v mém případě KDE)
Kód: [Vybrat]
dbus-monitor --session
        "type='signal',interface='org.freedesktop.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 )

zajimalo by mne, jak logovat i odemčení...lze menit i ten parametr interface? aspon tipuji ze tam by se to dalo definovat
KDE už nějaký pátek nemám, ale není ScreenSaver jen spořič? Není zamčení v něčem jiném?

Proč to formuluju takhle - stačí jen invertovat Tvojí podmínku a měl bys dostat odemčení... Tedy pokud teď boolean true, tak by měl/mohl existovat i stav false (nebo prostě nějaký jiný stav).
Název: Re:Logovaní zamčení a odemčení obrazovky
Přispěvatel: ZAJDAN 24. 04. 2018, 10:31:06
díky hoši...zde je funkční řešení:

Kód: [Vybrat]
#!/bin/bash
dbus-monitor --session "type='signal',interface='org.freedesktop.ScreenSaver'" |
  while read x; do
    case "$x" in
      *"boolean true"*) echo Screen locked on $(date) >> $HOME/lock_screen.log;;
      *"boolean false"*) echo Screen unlocked on $(date) >> $HOME/lock_screen.log;;
    esac
  done