who

Что делает команда who в Linux

Команда who в Linux используется для отображения информации о пользователях, вошедших в систему. Она показывает, кто сейчас находится в системе, откуда выполнен вход и когда началась сессия. Это одна из базовых команд администрирования, которая помогает отслеживать активных пользователей и управлять многопользовательскими системами.

Синтаксис команды прост:

Bash
who [опции] [файл]

Без параметров команда выводит стандартный список пользователей, вошедших в систему. Пример:

Bash
$ who
user1   tty1   2025-10-13 08:45
user2   pts/0  2025-10-13 09:10 (:0)

Здесь user1 и user2 — это имена пользователей, tty1 и pts/0 — типы терминалов, а дата и время указывают момент входа в систему.

Основные параметры команды who

1. Параметр -a (или --all)

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

Bash
who -a

Вывод может содержать:

  • записи с LOGIN — точки входа;
  • run-level — текущий уровень запуска системы;
  • system boot — время последней перезагрузки.

Этот флаг помогает системным администраторам быстро собрать полную сводку о состоянии системы.

2. Параметр -b — время последней перезагрузки

Используется для отображения времени последней загрузки системы.

Bash
who -b

Вывод:

Bash
system boot  2025-10-13 07:30

Это полезно при анализе аптайма или для диагностики после обновлений ядра.

Совет: сочетайте who -b с uptime, чтобы получить полную картину времени работы системы.

3. Параметр -q — количество пользователей

Если нужно быстро узнать, сколько пользователей вошло в систему, можно использовать:

Bash
who -q

Пример вывода:

Bash
user1 user2
# users=2

Этот флаг экономит время, когда не требуется подробная информация о каждом пользователе.

4. Параметр -r — уровень выполнения (runlevel)

Команда позволяет узнать текущий уровень выполнения системы, что особенно актуально для системных администраторов.

Bash
who -r

Вывод:

Bash
run-level 5  2025-10-13 07:30

Значение 5 означает, что система запущена в графическом режиме.

5. Параметр -u — время бездействия пользователей

Флаг показывает, как долго пользователь был неактивен.

Bash
who -u

Пример вывода:

Bash
user1   tty1   2025-10-13 08:45   .   1234
user2   pts/0  2025-10-13 09:10  01:20  4321

Точка (.) означает, что пользователь активен, а время в формате HH:MM — длительность бездействия.

Совет: администраторы часто используют who -u для выявления «забытых» сессий, особенно на серверах с ограниченными ресурсами.

Дополнительные параметры команды who

1. Параметр -m

Этот параметр отображает только информацию о текущем пользователе (аналог who am i или whoami, но с более подробным выводом).

Bash
who -m

Пример:

Bash
user1   pts/0  2025-10-13 09:15 (:0)

Это удобно при удаленной работе по SSH, когда нужно быстро проверить, кто выполняет команду.

2. Параметр -T — статус терминала

Флаг добавляет колонку, показывающую, доступен ли терминал для отправки сообщений.

Bash
who -T

Пример вывода:

Bash
user1 + pts/0  2025-10-13 09:15 (:0)
user2 - pts/1  2025-10-13 09:20 (:1)

Знак + означает, что терминал доступен для сообщений (например, через write), а - — заблокирован.

3. Параметр -H — заголовок столбцов

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

Bash
who -H

Вывод:

Bash
NAME     LINE     TIME            COMMENT
user1    pts/0    2025-10-13 09:15 (:0)

Удобно, если вы сохраняете результат в файл или делаете отчеты.

Практическое использование команды who в Linux

Команда who в Linux часто используется вместе с другими утилитами для администрирования. Например:

  • Чтобы узнать, кто подключен и из какого IP-адреса: who | awk '{print $1, $5}'
  • Чтобы вывести только имена активных пользователей: who | cut -d' ' -f1 | sort | uniq
  • Чтобы логировать активные сессии: who >> /var/log/user_sessions.log

Это помогает вести мониторинг доступа и безопасности.

Совет: если нужно автоматизировать аудит входов пользователей, можно встроить who в cron-задачу и отправлять результаты на почту администратора.

Отличие команды who от похожих утилит

  • w — более детализированная версия, показывает, какие процессы выполняют пользователи.
  • users — выводит только список имен пользователей без дополнительной информации.
  • last — показывает историю входов, тогда как команда who в Linux отображает только текущие сессии.

Используя все эти инструменты вместе, можно создать полноценную систему мониторинга активности пользователей в Linux.

Хотя команда who в Linux проста, она является важным инструментом для анализа активности пользователей, диагностики системы и аудита безопасности. Владение ею — обязательный навык для любого администратора Linux.