Если ты когда-нибудь пытался понять, кто вообще сидит на твоём 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 или другие источники пользователей.
0 комментариев