Команда who позволяет получить список пользователей, находящихся в на- стоящее время в сеансе (пример 17.26). Информация об этом берется из спе- циального двоичного файла /var/run/utmp.
Пример 17.26. Команда who
$ who
user1 :0 Jan 21 15:10
С помощью этой же команды, используя соответствующие опции, можно по- лучать и другую информацию. Важнейшие опции команды who:
r -b — время последней загрузки системы;
r -H — печать заголовка;
r --login — информация о системных процессах, контролирующих вход в сеанс;
r -q — печатает все имена пользователей в сеансе и их количество;
r -w — текущий статус всех сеансов;
r -u — подробная информация о сеансах (пример 17.27);
r -a — полная информация о статусе процессов, контролирующих вход в сеанс.
Пример 17.27. Подробный отчет who о сеансах
$ who -uH
NAME LINE TIME IDLE PID COMMENT
user1
tty7
Jan 4 22:44 old
(:0)
user1
pts/0
Jan 4 23:48 .
(:0.0)
user1
pts/1
Jan 4 23:55 00:24
(:0.0)
Для получения отчета о сеансах пользователей, которые уже завершились, необходимо воспользоваться информацией, сохраняемой в файле /var/log/wtmp. Этот бинарный файл имеет ту же структуру, что и /var/run/utmp, поэтому его содержимое можно отобразить, указав его в качестве аргумента команды who. Однако для этого есть команда last (пример 17.28).
Пример 17.28. Команда last
$ last
user1
pts/1
:0.0
Mon
Jan
4 23:55
still
logged
in
user1
pts/0
:0.0
Mon
Jan
4 23:48
still
logged
in
user1
tty7
:0
Mon
Jan
4 22:44
still
logged
in
reboot system boot 2.6.31.8-0.1-des Mon Jan 4 22:42 (3+01:42)
user1 pts/1 :0.0 Sat Jan 2 20:19 - 22:40 (2+02:20)
Эта команда выводит информацию об открытых и законченных сеансах в обратном хронологическом порядке.
Имеется также стандартный файл журнала /var/log/lastlog, в котором также в бинарном виде хранится информация о последних входах в сеанс. Для по- лучения информации, находящейся в этом файле, требуется использовать команду lastlog. Она выводит в упорядоченном виде отчет о последних входах пользователей в сеанс.
Опции команды lastlog:
r -b — показывает входы в сеанс, совершенные ранее указанного количест- ва дней;
r -t — показывает записи lastlog, за указанный период в днях;
r -u — показывает записи lastlog для указанного пользователя (при-