tut*_*uju 10 linux fedora gnome logging lock-screen
查看用户锁定和解锁他的工作站的确切日期和时间 - 运行 Fedora 18。
有什么方法可以记录用户在 Fedora 18(或通用 linux 解决方案)上进入和退出“锁定屏幕”的事件?
/var/log/boot- 没有帮助。看着/var/log/messages我找到了消息systemd-logind[xxx]: New session 140 of user YYY,但找不到锁屏(侏儒?)事件。/var/log/audit/audit.log其中包含大量有关所有类型的用户和服务的 PAM 相关消息,但我不确定要查找锁定屏幕活动的内容小智 9
这是使用“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
Run Code Online (Sandbox Code Playgroud)
是的,它似乎没有为您记录在任何地方。@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
Run Code Online (Sandbox Code Playgroud)
这在我的带有 KDE 的 Fedora 上运行得很好,但我想它应该可以在其他东西上运行,比如带有 gnome 的 Debian 等等。
如果您grep不支持,您可能会遇到问题-P(在这种情况下您可以使用sed)。
| 归档时间: |
|
| 查看次数: |
16275 次 |
| 最近记录: |