问题
查看用户锁定和解锁其工作站(运行 Fedora 18)的确切日期和时间。
问题
有没有办法记录用户在 Fedora 18 上进入和退出“锁屏”的事件(或通用的 Linux 解决方案)?
尝试过
- 尝试查看
/var/log/boot
- 没有帮助。查看后,/var/log/messages
我找到了消息systemd-logind[xxx]: New session 140 of user YYY
,但找不到锁屏(gnome?)事件。 - 尝试查看了
/var/log/audit/audit.log
有关各种用户和服务的大量 PAM 相关消息,但我真的不知道该查找什么才能找到锁屏活动
答案1
这是使用“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
答案2
尝试查看/var/log/auth.log
。您应该会看到来自 PAM 和/或屏幕保护程序的一些相关消息。
答案3
是的,它似乎没有为您记录在任何地方。@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
这在我的 Fedora 和 KDE 上运行良好,但我想它应该可以在其他系统上运行,比如 Debian 和 gnome 等等。如果你的电脑不支持,
你可能会遇到问题(在这种情况下,你可以使用)。grep
-P
sed
答案4
您使用哪种屏幕保护程序?如果是 xscreensaver,请打开日志选项并尝试监视日志文件。