Вопрос или проблема
Команда last
только retrieves время входа. Меня интересует время, когда экран был разблокирован. Также приветствуются любые косвенные способы получения этой информации.
Вы проверяли системные журналы? Вы должны увидеть сообщение об аутентификации в /var/log/secure
, когда кто-то пытается разблокировать экран.
Например, при использовании KDE, если кто-то вводит неверный пароль:
Mar 7 14:19:05 saurok kcheckpass[16479]: pam_sss(kscreensaver:auth): ошибка аутентификации; logname=username uid=248800001 euid=248800001 tty=:0 ruser= rhost= user=username
А вот при успешной разблокировке:
Mar 7 14:19:09 saurok kcheckpass[16483]: pam_sss(kscreensaver:auth): успешная аутентификация; logname=username uid=248800001 euid=248800001 tty=:0 ruser= rhost= user=username
Ваши данные могут немного отличаться (эта машина находится в домене), но такая информация должна присутствовать.
Получить историю времени начала/конца Screensaver
Ответ или решение
Чтобы получить время разблокировки экрана в среде GNOME, вы можете воспользоваться системными журналами, так как команда last
отображает только время входа в систему. В зависимости от вашей конфигурации, сообщения о смене состояния экрана записываются в различные журналы. Вот несколько шагов, которые помогут вам извлечь нужную информацию.
-
Проверка системных журналов:
В GNOME вы можете проверить файл журнала/var/log/secure
илиjournalctl
для получения информации о событиях разблокировки. Используйте следующую команду для просмотра журналов:sudo journalctl _COMM=gdm-session-worker --since "YYYY-MM-DD" --until "YYYY-MM-DD"
Замените
YYYY-MM-DD
на интересующий вас диапазон дат. Это позволит вам увидеть все записи, связанные с управлением сессиями Gnome. -
Анализ логов:
Ищите сообщения, связанные с разблокировкой экрана. Обычно они содержат фразы, указывающие на успех или неудачу аутентификации, подобные следующим:…: pam_unix(gdm:auth): authentication success; logname=username
или
…: pam_unix(gdm:auth): authentication failure; logname=username
Успешное сообщение будет означать, что экран был успешно разблокирован.
-
Использование
gnome-screensaver
:
Если у вас установленgnome-screensaver
, вы можете также использовать его журналы. Проверьте наличие файла~/.xsession-errors
или используйте следующую команду для получения информации о событиях:tail -f ~/.xsession-errors
-
Создание скрипта для мониторинга событий:
Вы можете создать скрипт для автоматического мониторинга и записи времени разблокировки экрана. Например:#!/bin/bash while true; do if loginctl; then echo "$(date): Screen unlocked" >> ~/screen_unlock_log.txt fi sleep 5 done
Сохраните скрипт и сделайте его исполняемым с помощью
chmod +x script.sh
. Запустите его в фоновом режиме.
Таким образом, описанные методы позволят вам получить необходимую информацию о времени разблокировки экрана в GNOME. Не забудьте также регулярно просматривать и очищать журналы, чтобы избежать заполнения дискового пространства.