Проверка записей о входах в системе в файле /var/run/utmp
На этом этапе вы узнаете о файле /var/run/utmp
и о том, как команды типа who
и w
получают из него информацию. Этот файл является важной частью механизма отслеживания в Linux пользователей, вошедших в систему.
Файл /var/run/utmp
представляет собой бинарный файл, содержащий информацию о пользователях, в данный момент вошедших в систему. Он постоянно обновляется при входе и выходе пользователей. Команды, такие как who
, w
и users
, читают этот файл для отображения текущей информации о входах.
Поскольку /var/run/utmp
- это бинарный файл, вы не можете просто просмотреть его содержимое с помощью команд, такими как cat
или less
, как вы бы делали с текстовым файлом. В этом случае вы увидите непонятные символы.
Давайте попробуем просмотреть его с помощью команды cat
, чтобы увидеть, что произойдет (и понять, почему мы так делать не должны):
cat /var/run/utmp
Вы увидите множество нечитаемых символов, что ожидаемо для бинарного файла.
<binary_output>
Для чтения содержимого файла /var/run/utmp
в человекочитаемом формате обычно используются специально разработанные для разбора этого файла команды, такие как who
или w
, которые вы использовали на предыдущих этапах.
Еще одна команда, которая специально читает и отображает содержимое файла /var/run/utmp
, - это utmpdump
. Эта команда полезна для отладки или изучения исходных данных в файле.
Давайте используем команду utmpdump
для просмотра содержимого файла /var/run/utmp
.
utmpdump /var/run/utmp
Вы должны увидеть структурированный и читаемый вывод, показывающий записи для каждого сеанса входа. Точный вывод будет зависеть от текущего состояния системы, но он будет выглядеть приблизительно так:
Utmp dump of /var/run/utmp
[<type>] [<pid>] [<line>] [<id>] [<user>] [<host>] [<exit>] [<session>] [<tv_sec>] [<tv_usec>] [<addr_v6>]
...
[7] [ <pid> ] [ :0 ] [ :0 ] [ labex ] [ :0 ] [ 0, 0 ] [ <session_id> ] [ <timestamp> ] [ <usec> ] [ <ipv6_address> ]
...
Вывод показывает различные поля для каждой записи в файле utmp
, включая тип записи (например, вход пользователя), идентификатор процесса, терминал, имя пользователя, хост, время входа и многое другое.
Понимание файла /var/run/utmp
помогает вам понять, как Linux отслеживает сеансы пользователей и как работают команды типа who
и w
"под капотом".
Нажмите Продолжить, чтобы завершить этот практический урок.