Всем привет! Часто ли тебе приходилось задумываться, кто вообще тусуется на твоём Linux-сервере? Особенно если это не твой личный ноут, а какой-нибудь продакшен или тестовый сервер, где бывает много народу? В этой статье расскажу, как быстро и просто посмотреть список пользователей в Linux — причём не только зарегистрированных, а и тех, кто сейчас реально залогинен. Разберёмся с /etc/passwd
и командой who
, плюс затронем пару других полезных способов. Всё максимально по-простому, без воды и маркетинговых соплей.
Зачем вообще это нужно?
Во-первых, безопасность — лишние пользователи на сервере могут означать потенциальные проблемы. Во-вторых, иногда надо просто понять, кто сейчас работает на машине, а кто прописан в системе, но давно не заходил. Ну и классика — аудит, ревью доступов, автоматизация, скрипты и всё такое.
Что потребуется
- Любая Linux-система (подойдёт Ubuntu, Debian, CentOS, Fedora, Arch — вообще любая, где есть bash и стандартные утилиты).
- Доступ к терминалу (ssh или локальный).
- Железо — любой сервер или виртуалка, даже Raspberry Pi.
- Права обычного пользователя (root не нужен, если только не хочешь менять что-то в системе).
Установка — пошаговая инструкция
Всё просто: ничего ставить не надо! Все необходимые инструменты уже есть в любой нормальной Linux-системе из коробки. Но если тебе вдруг не хватает каких-то утилит (например, getent
), то это очень редкий случай.
- Открываешь терминал (ssh или локально).
- Готово! Можно работать. Всё, что дальше — просто команды и немного магии bash.
Использование: команды и варианты
Список всех пользователей (зарегистрированных в системе)
- Через /etc/passwd:
cat /etc/passwd
Получишь кучу строк видаusername:x:UID:GID:comment:home:shell
. Обычно системные пользователи имеют UID меньше 1000, а реальные люди — больше (зависит от дистрибутива). - Только имена пользователей:
cut -d: -f1 /etc/passwd
- Только «человеческие» пользователи (UID >= 1000):
awk -F: '$3>=1000{print $1}' /etc/passwd
- С помощью getent (корректно работает с LDAP/NIS):
getent passwd
Кто сейчас залогинен?
- who
who
Покажет, кто сейчас в системе: логин, терминал, время, IP/hostname. - w
w
То же самое, но чуть подробнее — чем занят пользователь, сколько висит сессия и т.д. - users
users
Просто список имён залогиненных пользователей через пробел.
Дополнительные команды
- last
last
История логинов (кто, когда входил и выходил). - finger (может не быть по умолчанию)
finger
Красивый подробный вывод о пользователях.
Ошибки и как делать не надо
- Не редактируй
/etc/passwd
руками без крайней необходимости — можно легко сломать систему. - Не путай список всех пользователей и список активных сессий — это разные вещи.
- Не используй устаревшие команды типа
rusers
— это атавизм. - Не забывай, что в
/etc/passwd
могут быть сервисные учётки — не удаляй их просто так.
Пример из реальной жизни
Допустим, ты пришёл на новый сервер и не понимаешь, кто тут вообще есть. Сначала смотришь всех пользователей:
awk -F: '$3>=1000{print $1}' /etc/passwd
Видишь, что есть vasya
, petya
, admin
. Проверяешь, кто сейчас залогинен:
who
Оказывается, vasya
сидит через ssh. Дальше — w
, чтобы понять, чем он занят. Всё, теперь ты понимаешь, кто и что делает на сервере. Если надо — пишешь скрипт, который мониторит активных пользователей и шлёт алерты, если кто-то подозрительный залогинился.
Заключение
Проверять пользователей на Linux — это реально просто и быстро. Не надо никаких супер-инструментов, всё есть в базовой поставке. Используй /etc/passwd
или getent
для списка всех учёток, who
и w
— для активных сессий. Не забывай про безопасность и аудит, особенно если сервер не твой личный. Если хочешь копнуть глубже — вот пара полезных официальных ссылок:
Если есть вопросы — пиши в комментах, разберём вместе. Удачи и чистых логов!
Ваш отзыв