Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код: Skills Начать
Рубрики
Linux Администрация

Как просмотреть всех доступных пользователей в Linux: полное руководство для администраторов VPS

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

Если вы используете среду VPS Hosting с AlexHost, эти методы применяются непосредственно к вашему серверу Ubuntu, Debian или CentOS и помогут вам сохранить полный контроль над тем, кто имеет доступ к вашей инфраструктуре.

Почему просмотр пользователей Linux важен для безопасности сервера

Прежде чем переходить к командам, стоит понять *почему* эта задача так важна. На любом Linux сервере — особенно на сервере, размещающем веб-приложения, такие как WordPress, Laravel или пользовательские API — со временем накапливается несколько учетных записей пользователей:

  • Системные пользователи, созданные автоматически установленными сервисами (например, www-data, mysql, nginx)
  • Административные пользователи с привилегиями sudo или уровня root
  • Пользователи приложений, связанные с конкретными программными стеками
  • Забытые или неиспользуемые учетные записи, оставленные после удаления программного обеспечения или изменения персонала

Регулярный аудит этих учетных записей помогает вам:

  • Обнаруживать несанкционированные или подозрительные учетные записи
  • Применять принцип наименьших привилегий
  • Соответствовать политикам безопасности и требованиям аудита
  • Выявлять неправильно настроенные оболочки или домашние каталоги

С корневым доступом AlexHost, хранилищем на базе NVMe и встроенной защитой от DDoS запуск этих команд быстрый, надежный и безопасный — даже на производственных системах под нагрузкой.

Понимание файла /etc/passwd

Вся информация об учетных записях пользователей в Linux хранится в файле /etc/passwd. Это база данных в виде простого текста, которую операционная система читает во время аутентификации и операций управления пользователями. Каждая строка в файле представляет одну учетную запись пользователя и следует этому структурированному формату:

username:password:UID:GID:comment:home_directory:shell

Вот что означает каждое поле:

ПолеОписание
usernameИмя входа пользователя
passwordИсторически хранилось здесь; теперь заменено на x (фактический хеш находится в /etc/shadow)
UIDНомер ID пользователя (0 = root, 1–999 = системные пользователи, 1000+ = обычные пользователи)
GIDID основной группы
commentДополнительное описание или полное имя (поле GECOS)
home_directoryПуть к домашней папке пользователя
shellОболочка по умолчанию, назначенная пользователю

Типичная запись выглядит так:

alexadmin:x:1001:1001:Alex Admin,,,:/home/alexadmin:/bin/bash

Понимание этой структуры делает каждый метод ниже намного легче для интерпретации.

Способ 1: Просмотр всех пользователей путем прямого чтения /etc/passwd

Самый простой подход — вывести все содержимое /etc/passwd в ваш терминал. У вас есть два основных варианта в зависимости от того, как вы хотите навигировать по выводу.

Использование cat (лучше всего для короткого вывода или передачи данных)

cat /etc/passwd

Это выводит весь файл в стандартный вывод. На типичном сервере вы увидите десятки записей — большинство из них системные учетные записи.

Использование less (лучше всего для интерактивного просмотра)

less /etc/passwd

Пейджер less позволяет прокручивать файл в интерактивном режиме. Нажмите q для выхода, / для поиска и стрелки для навигации.

Пример вывода

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
alexadmin:x:1001:1001::/home/alexadmin:/bin/bash
deploy:x:1002:1002::/home/deploy:/bin/bash

Совет профессионала: Учетные записи с /usr/sbin/nologin или /bin/false в качестве оболочки не могут входить в интерактивном режиме — это служебные учетные записи, используемые системными демонами.

Метод 2: Используйте getent для запроса базы данных пользователей

Команда getent (сокращение от *get entries*) извлекает записи из системных баз данных, определенных в /etc/nsswitch.conf. Это предпочтительный метод в современных окружениях Linux, поскольку он работает правильно даже когда учетные записи пользователей получены из внешних каталогов, таких как LDAP или NIS — не только из локального файла /etc/passwd.

getent passwd

Формат вывода идентичен /etc/passwd, но getent гарантирует, что вы видите *всех* пользователей независимо от того, где они хранятся. На стандартном VPS AlexHost вывод будет совпадать с /etc/passwd, но использование getent считается лучшей практикой для портативности и полноты.

Фильтр для конкретного пользователя

getent passwd alexadmin

Это возвращает только запись для пользователя alexadmin — полезно для быстрой проверки существования учетной записи и проверки ее конфигурации.

Способ 3: Извлечение только имен пользователей с cut

Когда вам нужен чистый список имен пользователей — без UID, домашних директорий или информации о shell — объедините getent с командой cut для выделения первого поля.

getent passwd | cut -d: -f1

Как это работает:

  • getent passwd выводит полную базу данных пользователей
  • | cut -d: -f1 передает этот вывод в cut, который использует : в качестве разделителя (-d:) и извлекает только первое поле (-f1) — имя пользователя

Пример вывода

root
daemon
bin
sys
www-data
alexadmin
deploy
backup

Этот чистый список идеален для написания скриптов, логирования или быстрого сканирования на предмет неожиданных учетных записей.

Показать только обычных (интерактивных) пользователей

Системные учетные записи обычно имеют UID ниже 1000. Для фильтрации только обычных пользователей объедините awk с проверкой UID:

awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd

Это особенно полезно в средах общего хостинга или на серверах с большим количеством служебных учетных записей.

Способ 4: Использование awk для пользовательского выборочного вывода

Команда awk — это мощный инструмент обработки текста, который дает вам полный контроль над тем, какие поля отображать и как их форматировать. Это бесценно, когда вам нужен быстрый обзор учетных записей пользователей для административного или безопасностного аудита.

Отображение имен пользователей и домашних каталогов

getent passwd | awk -F: '{print "Username: " $1 "t Home Directory: " $6}'

Пример вывода

Username: root           Home Directory: /root
Username: www-data       Home Directory: /var/www
Username: alexadmin      Home Directory: /home/alexadmin
Username: deploy         Home Directory: /home/deploy

Отображение имен пользователей, UID и оболочек

getent passwd | awk -F: '{print "User: " $1 "t UID: " $3 "t Shell: " $7}'

Показать только пользователей с действительной оболочкой входа

getent passwd | awk -F: '$7 == "/bin/bash" || $7 == "/bin/sh" {print $1, $6, $7}'

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

Метод 5: Подсчет общего количества пользователей

Нужен быстрый подсчет всех учетных записей пользователей в системе?

getent passwd | wc -l

Для подсчета только реальных пользователей (UID ≥ 1000):

awk -F: '$3 >= 1000' /etc/passwd | wc -l

Method 6: Check Which Users Have Sudo Privileges

Knowing who can escalate privileges is critical for security. Use these commands to identify privileged accounts:

Check the sudo group members

getent group sudo

Check the wheel group (common on CentOS/RHEL)

getent group wheel

List all sudoers (requires root)

sudo cat /etc/sudoers

On your VPS with cPanel or any managed control panel environment, some users may have sudo rights granted through panel-specific configuration files in /etc/sudoers.d/.

Способ 7: Просмотр текущих активных пользователей

Чтобы увидеть, кто *активно* вошел на ваш сервер прямо сейчас, используйте команду who или w:

who
w

Команда w предоставляет более подробную информацию, включая то, что в данный момент запускает каждый пользователь, время входа и длительность простоя. Это отличный первый шаг при расследовании подозрительной активности на вашем сервере.

Практический рабочий процесс безопасности: аудит пользователей на вашем Linux VPS

Вот рекомендуемый рабочий процесс, который вы можете периодически запускать на любом сервере AlexHost для поддержания чистой и безопасной среды пользователей:

# Step 1: List all human users
awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd

# Step 2: Check who has sudo access
getent group sudo wheel

# Step 3: Identify accounts with login shells
getent passwd | awk -F: '$7 ~ /bash|sh/ {print $1, $7}'

# Step 4: See who is currently logged in
w

# Step 5: Review recent login history
last | head -20

Регулярный запуск этого аудита — или его автоматизация с помощью cron job — это простой, но эффективный способ обеспечить безопасность вашего сервера. Это особенно важно, если ваш VPS размещает несколько веб-приложений или если вы предоставили SSH доступ разработчикам или подрядчикам.

Управление пользователями: Следующие шаги

После того как вы определили своих пользователей, вам может потребоваться принять меры. Вот наиболее распространённые команды управления пользователями:

ЗадачаКоманда
Добавить нового пользователяsudo adduser newusername
Удалить пользователяsudo deluser --remove-home username
Заблокировать учётную записьsudo passwd -l username
Изменить оболочку пользователяsudo chsh -s /usr/sbin/nologin username
Добавить пользователя в группу sudosudo usermod -aG sudo username

Эти операции полностью поддерживаются в Linux VPS окружениях AlexHost, где у вас есть неограниченный доступ root для управления вашей системой точно так, как вам нужно.

Выбор подходящего хостинга AlexHost для ваших потребностей

Команды и методы в этом руководстве применяются во всех средах Linux-серверов, но правильный план хостинга значительно влияет на производительность и управляемость:

  • VPS Hosting — Полный root-доступ, выделенные ресурсы и NVMe хранилище. Идеально для разработчиков и компаний, нуждающихся в полном контроле над своей Linux-средой.
  • Dedicated Servers — Максимальная производительность и изоляция для высоконагруженных приложений или рабочих нагрузок, чувствительных к безопасности, требующих строгого контроля доступа пользователей.
  • Shared Web Hosting — Управляемая среда для более простых проектов, где управление пользователями на уровне сервера осуществляется командой AlexHost.
  • VPS Control Panels — Упростите управление пользователями и сервером с помощью интуитивных графических интерфейсов, таких как cPanel, Plesk или DirectAdmin.

Заключение

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

  • /etc/passwd и getent passwd дают вам полную картину
  • cut сокращает вывод только до имен пользователей
  • awk позволяет создавать пользовательские, читаемые отчеты
  • who и w показывают активные сеансы в реальном времени
  • Запросы групп выявляют риски повышения привилегий

Независимо от того, являетесь ли вы опытным системным администратором или только начинаете работать с управлением сервером Linux, эти инструменты незаменимы. Объедините их с надежной инфраструктурой AlexHost — с хранилищем на базе NVMe, полным доступом root и защитой от DDoS корпоративного уровня — и у вас будет все необходимое для запуска быстрого, безопасного и хорошо управляемого сервера.

Готовы взять полный контроль над вашей средой Linux? Изучите AlexHost VPS Hosting и начните прямо сейчас.