Linux команда last – это полезная утилита, предоставляющая подробную информацию о последних входах в систему. Запрашивая файлы журналов системы, в частности /var/log/wtmp, она выводит полный список пользовательских сессий, включая имя пользователя, имя терминала, IP-адрес (если применимо), а также время и продолжительность каждой сессии. Эта команда особенно полезна системным администраторам для мониторинга активности пользователей, отслеживания попыток входа в систему и выявления несанкционированного доступа. Дополнительно, последний можно настроить с помощью различных опций для фильтрации результатов, например, показать только логины определенного пользователя или отобразить записи за определенный диапазон дат, что делает его универсальным инструментом для управления системой и аудита безопасности.
Если вы новичок в системном администрировании, вам может понадобиться доступ или мониторинг учетных данных. Вероятно, вы будете использовать несколько инструментов для этой цели, и одним из них является last. В этом руководстве мы расскажем об основных функциях этой программы на понятных примерах.
Прежде чем перейти к объяснениям, следует отметить, что все приведенные здесь примеры были протестированы на системе Ubuntu 24.04, но они должны работать одинаково на любом современном дистрибутиве Linux.
Последняя команда Linux
The последний команда выводит список последних вошедших в систему пользователей. Ниже приведен ее синтаксис:
last [options] [username...] [tty...]
Вот как объясняет этот инструмент страница man:
last searches back through the /var/log/wtmp file (or the file desig? nated by the -f option) and displays a list of all users logged in (and out) since that file was created. One or more usernames and/or ttys can be given, in which case last will show only the entries matching those arguments. Names of ttys can be abbreviated, thus last 0 is the same as last tty0.
When catching a SIGINT signal (generated by the interrupt key, usually
control-C) or a SIGQUIT signal, last will show how far it has searched
through the file; in the case of the SIGINT signal last will then ter?
minate.
The pseudo user reboot logs in each time the system is rebooted. Thus
last reboot will show a log of all the reboots since the log file was
created.
Ниже приведено несколько примеров в стиле Q&A, которые должны дать вам лучшее представление о том, как работает last.
Q1. Как использовать команду last?
Базовое использование очень простое. Все, что вам нужно сделать, это запустить команду ‘last’ без каких-либо опций:
last
Q2. Как настроить вывод в случае нелокальных логинов?
По умолчанию в случае нелокальных плагинов команда last отображает вывод следующим образом:
Примечание: На скриншоте мы намеренно размыли некоторые части, содержащие IP-адреса.
Теперь, если вы хотите, вы можете немного изменить этот вывод, переместив колонку, связанную с IP-адресами, в крайнее правое положение. Это можно сделать с помощью функции -a опция командной строки.
Q3. Как заставить last читать другой файл?
Как уже упоминалось в начале учебника, команда last читает файл /var/log/wtmp файл для подготовки вывода. Однако при желании можно заставить инструмент читать совершенно другой файл. Это можно сделать с помощью функции -f опция командной строки. Конечно, вам придется передать имя нового файла (вместе с путем к нему) в качестве входных данных для этой опции.
last -f [new-file-path-and-name]
Q4. Как сделать так, чтобы последняя печать содержала полную информацию о дате и времени?
Если вы хотите, чтобы last выдавал на выходе полную информацию о дате и времени, воспользуйтесь командой -F опция командной строки.
last -F
Q5. Как сделать так, чтобы последняя печать показывала только определенное количество строк?
Если вы хотите настроить количество строк, которые команда last показывает в выводе, вы можете сделать это с помощью функции -n опция командной строки. Конечно, вам придется передать число в эту опцию в качестве входных данных.
Например:
last -n 3
Таким образом, вы можете видеть, что вывод содержит только 3 строки.
Q6. Как сделать так, чтобы last подавлял поле имени хоста в выводе?
Третий столбец в выводе last – это информация об имени хоста. Однако по какой-то причине, если вы хотите, чтобы инструмент подавлял эту информацию, используйте опцию -R командной строки.
last -R
Q7. Как заставить last отображать информацию за определенный период времени?
Предположим, вы хотите, чтобы last выводил только информацию, основанную на времени – скажем, только информацию за вчера и сегодня – тогда вы можете воспользоваться командой -s и -t параметры командной строки.
Например:
last -s yesterday -t today
Please note the options that take the time argument understand the following formats:
YYYYMMDDhhmmss
YYYY-MM-DD hh:mm:ss
YYYY-MM-DD hh:mm (seconds will be set to 00)
YYYY-MM-DD (time will be set to 00:00:00)
hh:mm:ss (date will be set to today)
hh:mm (date will be set to today, seconds to 00)
now
yesterday (time is set to 00:00:00)
today (time is set to 00:00:00)
tomorrow (time is set to 00:00:00)
+5min
-5days
Q8. Как сделать так, чтобы в последний раз отображались такие вещи, как изменения уровня выполнения?
Для отображения такой информации, как изменения уровня выполнения и записи о завершении работы системы, используйте параметр -x опция командной строки.
last -x
Заключение
Согласитесь, последняя команда не относится к тем, которые вы будете использовать ежедневно, но, скорее всего, будут дни, когда этот инструмент окажется очень полезным. В этом руководстве мы рассмотрели несколько основных опций – этого должно быть достаточно, чтобы начать работу.