GNU/Linux >> Linux の 問題 >  >> Linux

ロック画面イベントのログ記録

「dbus-monitor」を使用した別のソリューションを次に示します。画面のアクティビティを記録する小さな 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

/var/log/auth.log を見てみましょう . PAM やスクリーンセーバー アプリケーションからの関連メッセージが表示されるはずです。


はい、どこにも記録されていないようです。 @tutuDajuju には良い解決策があるので、興味のある人のために bash に移植すると思いました (そして gnome の使用への依存を取り除きます。これはデスクトップ環境に関係なく動作するはずです)。
これをバックグラウンドで実行し、ログ ファイルにパイプすると、ログが作成されます。

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

これは、KDE ​​を使用する Fedora では問題なく動作しましたが、gnome などを使用した Debian などの他のものでも動作するはずです。
grep の場合、問題が発生する可能性があります -P をサポートしていません (この場合、 sed を使用できます ).


Linux
  1. MySQL/MariaDBクエリログを有効にする方法

  2. rootアカウントでのログインを無効にする

  3. Linux – Linuxへのログインを理解していますか?

  1. Ssh – Sshアクセス試行のログ?

  2. トラフィックの多いイベントに備える

  3. Linux で Mitmproxy のイベント ログを表示する

  1. Linuxリポジトリとロギングの確認

  2. Linux ノンブロッキング fifo (オンデマンド ロギング)

  3. vi アクティビティをログに記録できますか?