users

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

Команда users в Linux — это утилита, которая выводит список пользователей, вошедших в систему в данный момент. Она считывает информацию из файла /var/run/utmp, где хранится информация о текущих активных сессиях. В отличие от более подробных команд вроде who или w, команда users возвращает только имена пользователей без дополнительных данных, таких как время входа или терминал.

Пример простого вызова:

Bash
users

Результат может выглядеть так:

Bash
root alex sergey

Это означает, что в системе сейчас активны три пользователя: root, alex и sergey.

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

Основные параметры и использование команды users

Команда users — одна из самых простых в Linux, но у неё есть несколько полезных опций, которые стоит знать.

1. Использование без параметров

Самый частый вариант применения:

Bash
users

Выводит всех пользователей, вошедших в систему. Если один пользователь вошел с разных терминалов или сессий, его имя будет показано несколько раз.

Например:

Bash
root root ivan

означает, что пользователь root вошел в систему дважды.

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

Bash
users | grep -o "root" | wc -l

Эта команда покажет количество активных сессий пользователя root.

2. Опция --help

Команда users --help выводит краткую справку по доступным параметрам. Это стандартная опция для большинства утилит Linux:

Bash
users --help

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

Bash
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

Чтобы узнать версию программы, используется:

Bash
users --version

Пример результата:

Bash
users (GNU coreutils) 9.1

Эта информация может пригодиться при проверке версии утилиты в различных Linux-дистрибутивах, особенно если на сервере установлены разные версии GNU coreutils.

4. Использование с альтернативным файлом utmp/wtmp

По умолчанию команда users в Linux читает данные из /var/run/utmp, но можно указать другой файл. Например, если вы хотите проверить, кто был в системе раньше, можно использовать /var/log/wtmp:

Bash
users /var/log/wtmp

Эта команда покажет список пользователей, которые входили в систему ранее, а не только текущие активные сессии.

Другой вариант — использовать /var/log/btmp, чтобы отследить неудачные попытки входа (если доступ разрешён).

Совет: для анализа активности лучше использовать last, но команда users остаётся полезной для простых проверок.

Отличия команды users от других команд

Сравнение с who

Хотя обе команды похожи, who предоставляет больше информации. Например:

Bash
who

может вернуть:

Bash
root     pts/0        2025-10-13 10:45 (:0)
alex     pts/1        2025-10-13 11:02 (192.168.1.5)

А users выведет только:

Bash
root alex

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

Сравнение с w

Команда w — более мощная альтернатива, которая показывает не только активных пользователей, но и их процессы:

Bash
w

Вывод может быть таким:

Bash
 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 при этом покажет:

Bash
root alex

То есть она полезна, если нужно быстро проверить факт присутствия пользователей без анализа нагрузки.

Примеры использования команды users в автоматизации

1. Проверка активных пользователей в cron

Системные администраторы часто используют команду users в Linux в cron-задачах для автоматического мониторинга.
Например, скрипт, который отправляет уведомление, если в системе есть активные пользователи:

Bash
#!/bin/bash
active_users=$(users)
if [ -n "$active_users" ]; then
  echo "Активные пользователи: $active_users" | mail -s "Отчет о пользователях" admin@example.com
fi

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

2. Подсчет уникальных пользователей

Чтобы посчитать, сколько уникальных пользователей вошло в систему:

Bash
users | tr ' ' '\n' | sort | uniq | wc -l

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

3. Проверка конкретного пользователя

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

Bash
if users | grep -q "alex"; then
  echo "Пользователь alex сейчас в системе"
else
  echo "Пользователь alex неактивен"
fi

Такой способ часто применяется при написании bash-скриптов для контроля доступа или автоматизации задач.

Практическое применение в администрировании

Команда users в Linux полезна при настройке SSH-сессий, аудите активности и мониторинге работы системы. Например, на серверах с множеством пользователей администратору важно быстро узнать, кто подключен, не используя громоздкие утилиты.

Также команда может использоваться для:

  • отслеживания активности пользователей при выполнении обновлений;
  • проверки присутствия пользователей перед перезагрузкой системы;
  • интеграции в системы мониторинга (например, Zabbix, Nagios).
Совет: чтобы получать результаты в реальном времени, можно комбинировать команду с watch:

Bash
watch -n 5 users

Эта команда каждые 5 секунд обновляет список активных пользователей.

Таким образом, команда users в Linux — это простая, но полезная утилита, которая позволяет быстро узнать, кто находится в системе. Она идеально подходит для скриптов, автоматизации и повседневных административных задач, где требуется минималистичный и быстрый результат без лишних данных.