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 гарантира, че видите *всички* потребители независимо откъде се съхраняват. На стандартен AlexHost VPS изходът ще съответства на /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
За начало