Если ты когда-нибудь пытался понять, кто вообще сидит на твоём Linux-сервере или рабочей машине, то знаешь, что это не всегда тривиальная задача. Особенно когда админ забыл тебе объяснить, где хранятся эти данные и как их вытянуть без костылей. Множество начинающих сразу лезут в /etc/passwd, думая, что там вся инфа, а дальше мучаются с фильтрами и разбором.

В этом материале я расскажу, как получить список пользователей быстро и без бестолковых попыток ковыряться в файлах, какие команды использовать, чтобы быть уверенным, что у тебя полная картина — и как проверить, жив ли конкретный пользователь в системе. Поехали без лишних соплей и рекламы, только факты и рабочие команды.

Все юзеры лежат в /etc/passwd. Там каждая строка — это один пользователь. Семь полей через двоеточие:

  • Имя пользователя
  • Пароль (обычно просто x, пароль лежит в /etc/shadow)
  • UID — числовой ID пользователя
  • GID — основная группа
  • GECOS — полное имя или описание
  • Домашний каталог
  • Оболочка (обычно /bin/bash)

Как просто вывести список всех юзеров

Выводим только имена:

awk -F: '{print $1}' /etc/passwd

Или так:

cut -d: -f1 /etc/passwd

Лучше — использовать getent

Команда getent passwd достает список пользователей из всех источников: и из /etc/passwd, и из LDAP, если он есть. Так надежнее, чем просто смотреть в файл.

getent passwd | awk -F: '{print $1}' 

Проверить, существует ли конкретный пользователь

Проверяем с grep:

getent passwd | grep username

Если вывод есть — пользователь жив. Нет — его нет.

Или напрямую:

getent passwd username

Если вывод — пользователь есть.

Сколько у тебя всего пользователей?

Подсчитать число строк — значит подсчитать юзеров:

getent passwd | wc -l

Итог

Если хочешь быстро проверить, кто вообще тусуется в системе — getent passwd твой лучший друг. Не забивай голову файлами напрямую, если у тебя LDAP или другие источники пользователей.