users
Что делает команда users в Linux
Команда users в Linux — это утилита, которая выводит список пользователей, вошедших в систему в данный момент. Она считывает информацию из файла /var/run/utmp, где хранится информация о текущих активных сессиях. В отличие от более подробных команд вроде who или w, команда users возвращает только имена пользователей без дополнительных данных, таких как время входа или терминал.
Пример простого вызова:
users
Результат может выглядеть так:
root alex sergey
Это означает, что в системе сейчас активны три пользователя: root, alex и sergey.
Команда особенно полезна в скриптах или при быстрой проверке, кто из пользователей подключен к серверу.
Основные параметры и использование команды users
Команда users — одна из самых простых в Linux, но у неё есть несколько полезных опций, которые стоит знать.
1. Использование без параметров
Самый частый вариант применения:
users
Выводит всех пользователей, вошедших в систему. Если один пользователь вошел с разных терминалов или сессий, его имя будет показано несколько раз.
Например:
root root ivan
означает, что пользователь root вошел в систему дважды.
users с grep и wc:
users | grep -o "root" | wc -l
Эта команда покажет количество активных сессий пользователя root.
2. Опция --help
Команда users --help выводит краткую справку по доступным параметрам. Это стандартная опция для большинства утилит Linux:
users --help
Пример вывода:
Usage: users [OPTION]... [FILE]
Print the user names of users currently logged in to the current host.
--help display this help and exit
--version output version information and exit
Справка показывает, что можно указать файл, из которого брать данные (по умолчанию /var/run/utmp).
3. Опция --version
Чтобы узнать версию программы, используется:
users --version
Пример результата:
users (GNU coreutils) 9.1
Эта информация может пригодиться при проверке версии утилиты в различных Linux-дистрибутивах, особенно если на сервере установлены разные версии GNU coreutils.
4. Использование с альтернативным файлом utmp/wtmp
По умолчанию команда users в Linux читает данные из /var/run/utmp, но можно указать другой файл. Например, если вы хотите проверить, кто был в системе раньше, можно использовать /var/log/wtmp:
users /var/log/wtmp
Эта команда покажет список пользователей, которые входили в систему ранее, а не только текущие активные сессии.
Другой вариант — использовать /var/log/btmp, чтобы отследить неудачные попытки входа (если доступ разрешён).
last, но команда users остаётся полезной для простых проверок.Отличия команды users от других команд
Сравнение с who
Хотя обе команды похожи, who предоставляет больше информации. Например:
who
может вернуть:
root pts/0 2025-10-13 10:45 (:0)
alex pts/1 2025-10-13 11:02 (192.168.1.5)
А users выведет только:
root alex
Таким образом, команда users в Linux используется, когда нужно получить короткий, чистый список без деталей.
Сравнение с w
Команда w — более мощная альтернатива, которая показывает не только активных пользователей, но и их процессы:
w
Вывод может быть таким:
11:20:25 up 1:02, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 :0 10:45 1:35 0.10s 0.00s bash
alex pts/1 192.168.1.5 11:02 0.00s 0.02s 0.00s sshd
А команда users при этом покажет:
root alex
То есть она полезна, если нужно быстро проверить факт присутствия пользователей без анализа нагрузки.
Примеры использования команды users в автоматизации
1. Проверка активных пользователей в cron
Системные администраторы часто используют команду users в Linux в cron-задачах для автоматического мониторинга.
Например, скрипт, который отправляет уведомление, если в системе есть активные пользователи:
#!/bin/bash
active_users=$(users)
if [ -n "$active_users" ]; then
echo "Активные пользователи: $active_users" | mail -s "Отчет о пользователях" admin@example.com
fi
Такой подход удобен для серверов, где важно знать, кто работает в системе.
2. Подсчет уникальных пользователей
Чтобы посчитать, сколько уникальных пользователей вошло в систему:
users | tr ' ' '\n' | sort | uniq | wc -l
Команда разбивает список на строки, сортирует, удаляет дубликаты и считает их количество.
3. Проверка конкретного пользователя
Если нужно узнать, вошел ли конкретный пользователь, можно использовать конструкцию:
if users | grep -q "alex"; then
echo "Пользователь alex сейчас в системе"
else
echo "Пользователь alex неактивен"
fi
Такой способ часто применяется при написании bash-скриптов для контроля доступа или автоматизации задач.
Практическое применение в администрировании
Команда users в Linux полезна при настройке SSH-сессий, аудите активности и мониторинге работы системы. Например, на серверах с множеством пользователей администратору важно быстро узнать, кто подключен, не используя громоздкие утилиты.
Также команда может использоваться для:
- отслеживания активности пользователей при выполнении обновлений;
- проверки присутствия пользователей перед перезагрузкой системы;
- интеграции в системы мониторинга (например, Zabbix, Nagios).
watch:
watch -n 5 users
Эта команда каждые 5 секунд обновляет список активных пользователей.
Таким образом, команда users в Linux — это простая, но полезная утилита, которая позволяет быстро узнать, кто находится в системе. Она идеально подходит для скриптов, автоматизации и повседневных административных задач, где требуется минималистичный и быстрый результат без лишних данных.