Как посмотреть список пользователей в Linux: /etc/passwd и who

Всем привет! Часто ли тебе приходилось задумываться, кто вообще тусуется на твоём Linux-сервере? Особенно если это не твой личный ноут, а какой-нибудь продакшен или тестовый сервер, где бывает много народу? В этой статье расскажу, как быстро и просто посмотреть список пользователей в Linux — причём не только зарегистрированных, а и тех, кто сейчас реально залогинен. Разберёмся с /etc/passwd и командой who, плюс затронем пару других полезных способов. Всё максимально по-простому, без воды и маркетинговых соплей.

Зачем вообще это нужно?

Во-первых, безопасность — лишние пользователи на сервере могут означать потенциальные проблемы. Во-вторых, иногда надо просто понять, кто сейчас работает на машине, а кто прописан в системе, но давно не заходил. Ну и классика — аудит, ревью доступов, автоматизация, скрипты и всё такое.

Что потребуется

  • Любая Linux-система (подойдёт Ubuntu, Debian, CentOS, Fedora, Arch — вообще любая, где есть bash и стандартные утилиты).
  • Доступ к терминалу (ssh или локальный).
  • Железо — любой сервер или виртуалка, даже Raspberry Pi.
  • Права обычного пользователя (root не нужен, если только не хочешь менять что-то в системе).

Установка — пошаговая инструкция

Всё просто: ничего ставить не надо! Все необходимые инструменты уже есть в любой нормальной Linux-системе из коробки. Но если тебе вдруг не хватает каких-то утилит (например, getent), то это очень редкий случай.

  1. Открываешь терминал (ssh или локально).
  2. Готово! Можно работать. Всё, что дальше — просто команды и немного магии 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 — для активных сессий. Не забывай про безопасность и аудит, особенно если сервер не твой личный. Если хочешь копнуть глубже — вот пара полезных официальных ссылок:

Если есть вопросы — пиши в комментах, разберём вместе. Удачи и чистых логов!

Хотите прочитать больше про Администрирование?
Отзывов нет.

Ваш отзыв

Пожалуйста, заполните поля снизу и добавьте отзыв!.
Имя *
E-mail *
Сайт
Сообщение *