Новый VPS, первый заход по SSH — и сразу вопрос: какие вообще пользователи есть на этой машине. Особенно если сервер не свежий, а достался после чьей-то настройки или установки панели управления.
Ubuntu хранит всё это в нескольких файлах и журналах. Разберём, как их читать — от простого cat до истории входов — на Ubuntu 22.04 и 24.04 LTS.
Зачем это нужно на VPS?
На выделенном сервере или VPS учётные записи создаются автоматически — для системных служб, панелей управления, баз данных. Со временем их накапливается немало, и потерять контроль легко. Своевременный аудит пользователей помогает:
- выявить посторонние или устаревшие аккаунты, которые могут стать точкой входа для злоумышленника;
- убедиться, что нужные люди имеют нужные права, а лишние — нет;
- разобраться, под каким пользователем работает тот или иной сервис;
- восстановить порядок после установки новых пакетов — они нередко добавляют собственных системных пользователей.
Способ 1. Файл /etc/passwd — полный список всех аккаунтов
Самый универсальный метод — напрямую прочитать файл /etc/passwd. Это текстовая база данных, которую понимает любой дистрибутив Linux, в том числе все версии Ubuntu. В ней хранятся сведения о каждой учётной записи: имя, идентификаторы, домашний каталог и оболочка.
Подключитесь к серверу по SSH и введите:
cat /etc/passwd

Каждая строка описывает одного пользователя и состоит из семи полей, разделённых двоеточием:
имя:пароль:UID:GID:комментарий:домашний_каталог:оболочка
Поле «пароль» в современных системах всегда содержит символ x — это значит, что реальный хеш хранится в защищённом файле /etc/shadow, недоступном обычным пользователям. UID (идентификатор пользователя) 0 — всегда root, значения от 1 до 999 зарезервированы под системные аккаунты, а от 1000 и выше — реальные люди.
Способ 2. Только имена — отфильтровываем лишнее
Полный вывод /etc/passwd перегружен деталями. Если нужен только список имён, есть два удобных варианта.
Через sed
sed 's/:.*//' /etc/passwd
Команда убирает всё, что идёт после первого двоеточия, оставляя только имена учётных записей. Быстро и наглядно.
Через cut — более читаемый вариант
cut -d: -f1 /etc/passwd
Результат тот же, но синтаксис нагляднее: берём поле номер 1, разделитель — двоеточие. Оба способа работают одинаково хорошо.
💡 Совет: чтобы отделить реальных пользователей от системных, добавьте фильтр по UID. Реальные аккаунты имеют UID от 1000:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Способ 3. Команда getent — правильный современный подход
Команда getent passwd — более предпочтительный инструмент по сравнению с прямым чтением файла. В отличие от cat /etc/passwd, она учитывает все источники пользователей, настроенные в системе: локальный файл, LDAP, NIS и другие службы каталогов. На корпоративных серверах или серверах с централизованной аутентификацией это принципиально.
getent passwd
Чтобы вывести только имена:
getent passwd | cut -d: -f1
Чтобы посмотреть только реальных (не системных) пользователей с UID от 1000:
getent passwd | awk -F: '$3 >= 1000 {print $1, $3, $6}'
💡 На большинстве VPS-серверов разница между
cat /etc/passwdиgetent passwdнезаметна, но привыкайте кgetent— это правильная практика.
Кто сейчас подключён к серверу?
Просмотреть список всех зарегистрированных пользователей — одно, но часто нужно знать именно тех, кто работает прямо сейчас. Для этого есть несколько инструментов.
Команда who
who
Выводит список активных сессий: имя пользователя, терминал, время входа и IP-адрес, с которого выполнено подключение. Особенно полезно на сервере с несколькими администраторами.
Команда w — расширенная версия
w

Помимо списка подключённых пользователей, команда w показывает, сколько времени они бездействуют, какую команду выполняют прямо сейчас и общую нагрузку на сервер (load average). Это удобно для быстрой диагностики — например, если сервер тормозит, сразу видно, кто и что запустил.
Команда users
users
Самый лаконичный вариант — просто выводит имена всех активных пользователей в одну строку.
История входов на сервер
Для аудита безопасности важно не только знать, кто сейчас на сервере, но и кто заходил раньше. Ubuntu ведёт журналы входов в файле /var/log/wtmp.
Полная история — команда last
last -a

Флаг -a выводит имя хоста в последнем столбце — удобно, когда нужно видеть IP-адрес подключения. Список отсортирован по убыванию: самые свежие входы вверху.
Чтобы ограничить вывод последними 20 записями:
last -a -n 20
Чтобы посмотреть историю конкретного пользователя:
last -a username
Когда каждый пользователь входил последний раз — lastlog
lastlog

Это удобный способ быстро найти «мёртвые» аккаунты — те, которыми давно никто не пользуется. Учётные записи системных служб, как правило, никогда не входили в систему интерактивно, и рядом с ними будет пометка «Никогда не входил в систему» (Never logged in).
💡 Если какой-то пользователь давно не заходил — повод задуматься, нужна ли ему учётная запись. Лишние аккаунты лучше блокировать:
sudo usermod -L username
Информация о конкретном пользователе
Когда нужно узнать подробности о конкретном аккаунте — его идентификаторы и группы — используйте команду id:
id username
Вывод будет примерно таким:
uid=1000(alex) gid=1000(alex) groups=1000(alex),4(adm),27(sudo),1001(docker)
Здесь видно UID, основную группу и все дополнительные группы, в которых состоит пользователь. Если пользователь есть в группе sudo — он может выполнять команды с правами суперпользователя. Если в группе docker — это фактически тот же уровень доступа.
Только список групп пользователя:
groups username
Информация о текущем пользователе (том, под которым вы вошли):
id
whoami
Графический интерфейс: Ubuntu Settings и KUser
Если на сервере установлен рабочий стол (что на VPS редкость, но всё же бывает), можно управлять пользователями через графические инструменты.
В стандартном окружении GNOME откройте Настройки → Учётные записи. Здесь отображаются все пользователи системы: тип учётной записи (стандартный или администратор), статус автовхода, дата последнего входа. Можно добавлять и удалять пользователей без командной строки.

В окружении KDE Plasma есть специализированная утилита KUser. Она предоставляет более детальный интерфейс: отображает UID, домашний каталог, оболочку входа, позволяет управлять группами. Отдельная вкладка для управления паролями делает её удобным инструментом для десктопного администрирования.


Важно понимать: в отличие от терминальных команд, графические утилиты не покажут историю входов и не дадут быстро проверить активные сессии. На VPS-сервере терминал всегда предпочтительнее.
Шпаргалка: все команды одним списком
| Команда | Что делает |
|---|---|
getent passwd |
Полный список пользователей (рекомендуемый способ) |
cut -d: -f1 /etc/passwd |
Только имена всех пользователей |
awk -F: '$3 >= 1000 {print $1}' /etc/passwd |
Только реальные (не системные) пользователи |
w |
Активные пользователи + нагрузка на сервер |
who |
Активные сессии с IP-адресами |
last -a |
История входов |
lastlog |
Когда каждый пользователь входил последний раз |
id username |
UID, GID и группы конкретного пользователя |
groups username |
Список групп пользователя |
Несколько советов по безопасности для VPS
Умение просматривать пользователей — первый шаг. Второй — регулярный аудит и поддержание порядка.
- Проверяйте список пользователей после установки новых пакетов или панелей управления — они часто добавляют собственные системные аккаунты.
- Отключайте неиспользуемые аккаунты командой
sudo usermod -L usernameвместо удаления — так проще восстановить доступ, если что-то пойдёт не так. - Настройте SSH так, чтобы вход по паролю был запрещён — используйте только ключи (
PasswordAuthentication noв/etc/ssh/sshd_config). - Ограничивайте SSH-доступ директивой
AllowUsersв конфиге sshd. - Периодически просматривайте
/var/log/auth.logна предмет неудачных попыток входа — это первый признак брутфорс-атаки.
Итог
Команды простые, работают на любом VPS с Ubuntu без установки чего-либо дополнительно. Если ещё не определились с сервером — в каталоге PQ.Hosting можно подобрать VPS под нужную конфигурацию и локацию.
Единственное, о чём стоит помнить: lastlog и last — первое, куда стоит смотреть, если что-то пошло не так с доступом. Шпаргалка выше пригодится.