who
Что делает команда who в Linux
Команда who в Linux используется для отображения информации о пользователях, вошедших в систему. Она показывает, кто сейчас находится в системе, откуда выполнен вход и когда началась сессия. Это одна из базовых команд администрирования, которая помогает отслеживать активных пользователей и управлять многопользовательскими системами.
Синтаксис команды прост:
who [опции] [файл]
Без параметров команда выводит стандартный список пользователей, вошедших в систему. Пример:
$ 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)
Пожалуй, самый полезный флаг, который выводит всю возможную информацию о пользователях, включая строки о процессах и записях о перезагрузке.
Пример:
who -a
Вывод может содержать:
- записи с
LOGIN— точки входа; run-level— текущий уровень запуска системы;system boot— время последней перезагрузки.
Этот флаг помогает системным администраторам быстро собрать полную сводку о состоянии системы.
2. Параметр -b — время последней перезагрузки
Используется для отображения времени последней загрузки системы.
who -b
Вывод:
system boot 2025-10-13 07:30
Это полезно при анализе аптайма или для диагностики после обновлений ядра.
who -b с uptime, чтобы получить полную картину времени работы системы.3. Параметр -q — количество пользователей
Если нужно быстро узнать, сколько пользователей вошло в систему, можно использовать:
who -q
Пример вывода:
user1 user2
# users=2
Этот флаг экономит время, когда не требуется подробная информация о каждом пользователе.
4. Параметр -r — уровень выполнения (runlevel)
Команда позволяет узнать текущий уровень выполнения системы, что особенно актуально для системных администраторов.
who -r
Вывод:
run-level 5 2025-10-13 07:30
Значение 5 означает, что система запущена в графическом режиме.
5. Параметр -u — время бездействия пользователей
Флаг показывает, как долго пользователь был неактивен.
who -u
Пример вывода:
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, но с более подробным выводом).
who -m
Пример:
user1 pts/0 2025-10-13 09:15 (:0)
Это удобно при удаленной работе по SSH, когда нужно быстро проверить, кто выполняет команду.
2. Параметр -T — статус терминала
Флаг добавляет колонку, показывающую, доступен ли терминал для отправки сообщений.
who -T
Пример вывода:
user1 + pts/0 2025-10-13 09:15 (:0)
user2 - pts/1 2025-10-13 09:20 (:1)
Знак + означает, что терминал доступен для сообщений (например, через write), а - — заблокирован.
3. Параметр -H — заголовок столбцов
Добавляет строку с заголовками к выводу команды:
who -H
Вывод:
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.