Команда lastlog

Команда lastlog позволяет задействовать одноименную утилиту, предназначенную для получения информации о времени открытия последних пользовательских сессий. Утилита читает бинарный файл журнала /var/log/lastlog и выводит информацию о времени создания сессии каждым из пользователей системы, используемых для работы терминалах, а также некоторых других менее важных аспектах. Она может оказаться крайне полезной в случаях несанкционированного доступа к вашей системе.

Базовый синтаксис команды выглядит следующим образом:

$ lastlog [параметры]

Утилита поддерживает ограниченное количество параметров. Наиболее важными из них являются параметр -u, позволяющий задать имя интересующего пользователя и параметр -t, позволяющий указать интересующий интервал времени в днях. Параметр -t имеет приоритет по отношению к параметру -u. В том случае, если пользователем не было инициировано сессий (в том числе, в течение указанного промежутка времени), выводится соответствующее сообщение: «**Никогда не входил в систему**».

Примеры использования

Вывод информации о времени открытия последних пользовательских сессий

Для вывода информации о времени открытия последних пользовательских сессий достаточно использовать утилиту без каких-либо дополнительных параметров:

$ lastlog
Пользователь     Порт     С            Последний раз
root                                   **Никогда не входил в систему**
daemon                                 **Никогда не входил в систему**
...
gnome-initial-setup                    **Никогда не входил в систему**
gdm                                    **Никогда не входил в систему**
alex             tty2                  Пн ноя 2 15:45:36 +0300 2020
systemd-coredump                       **Никогда не входил в систему**
lxd                                    **Никогда не входил в систему**
tcpdump                                **Никогда не входил в систему**
_flatpak                               **Никогда не входил в систему**
tss                                    **Никогда не входил в систему**
root                                   **Никогда не входил в систему**
nobody                                 **Никогда не входил в систему**

В результате будет выведена информация о времени открытия последних пользовательских сессий для всех пользователей системы. Разумеется, в типичной системе присутствует достаточно большое количество системных пользовательских учетных записей, которые предназначены для системных служб и не используются для открытия пользовательских сессий.

Вывод информации о пользовательских сессиях, открытых в прошлом

Для указания интервала времени, пользовательские сессии из которого вас интересуют, следует использовать параметр -t. Например, посмотрим информацию о пользовательских сессиях, открытых вчера (используем значение 1, то есть один день назад):

$ lastlog -t 1

Так как со вчерашнего дня открытых пользовательских сессий не сохранилось, утилита ничего не выведет.

Вывод информации о времени открытия сессии конкретного пользователя

Для вывода информации о времени открытия сессии конкретного пользователя достаточно использовать параметр -u и указать после него имя интересующего пользователя:

$ lastlog -u alex
Пользователь     Порт     С            Последний раз
alex             tty2                  Пн ноя 2 15:45:36 +0300 2020

В принципе, эту же информацию можно получить с помощью фильтра grep:

$ lastlog | grep alex
alex             tty2                  Пн ноя 2 15:45:36 +0300 2020

Но если утилита предоставляет готовый инструментарий, то грех им не пользоваться.