15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
24.01.2025

Як переглянути всіх доступних користувачів у Linux: повний посібник для адміністраторів VPS

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

Якщо ви використовуєте середовище VPS Hosting з AlexHost, ці методи застосовуються безпосередньо до вашого сервера Ubuntu, Debian або CentOS і допоможуть вам зберегти повний контроль над тим, хто має доступ до вашої інфраструктури.

Чому перегляд користувачів Linux важливий для безпеки сервера

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

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

Регулярна аудит цих облікових записів допомагає вам:

  • Виявити несанкціоновані або підозрілі облікові записи
  • Застосовувати принцип найменшого привілею
  • Відповідати політикам безпеки та вимогам аудиту
  • Виявити неправильно налаштовані оболонки або домашні каталоги

З 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, домашніх каталогів або інформації про оболонку — поєднайте 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

Метод 6: Перевірка, які користувачі мають привілеї Sudo

Знання того, хто може підвищити привілеї, критично важливо для безпеки. Використовуйте ці команди для виявлення привілейованих облікових записів:

Перевірка членів групи sudo

getent group sudo

Перевірка групи wheel (поширено на CentOS/RHEL)

getent group wheel

Список усіх sudoers (вимагає root)

sudo cat /etc/sudoers

На вашому VPS з cPanel або будь-якому середовищі керованої панелі керування деякі користувачі можуть мати права sudo, надані через конфігураційні файли, специфічні для панелі, у /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 — це простий, але ефективний спосіб зберегти безпеку вашого сервера. Це особливо важливо, якщо ваш VPS розміщує кілька веб-додатків або якщо ви надали SSH доступ розробникам

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати