15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
24.01.2025

Jak wyświetlić wszystkich dostępnych użytkowników w Linux: Kompletny przewodnik dla administratorów VPS

Zarządzanie kontami użytkowników to jedna z najbardziej fundamentalnych odpowiedzialności każdego administratora systemu Linux. Niezależnie od tego, czy przeprowadzasz audyt uprawnień dostępu, rozwiązujesz problemy z logowaniem, czy wzmacniasz poziom bezpieczeństwa serwera, dokładna znajomość użytkowników istniejących w systemie jest umiejętnością niezbędną. Ten przewodnik przeprowadzi Cię przez każdą praktyczną metodę wyświetlania i inspekcji użytkowników Linux — od odczytywania surowych plików systemowych po wykorzystanie potężnych narzędzi wiersza poleceń.

Jeśli korzystasz ze środowiska VPS Hosting w AlexHost, te techniki mają bezpośrednie zastosowanie do Twojego serwera Ubuntu, Debian lub CentOS i pomogą Ci utrzymać pełną kontrolę nad tym, kto ma dostęp do Twojej infrastruktury.

Dlaczego przeglądanie użytkowników Linux ma znaczenie dla bezpieczeństwa serwera

Zanim przejdziemy do poleceń, warto zrozumieć, *dlaczego* to zadanie jest tak ważne. Na każdym serwerze Linux — zwłaszcza tym hostującym aplikacje internetowe takie jak WordPress, Laravel lub niestandardowe API — wiele kont użytkowników gromadzi się w miarę upływu czasu:

  • Użytkownicy systemowi utworzeni automatycznie przez zainstalowane usługi (np. www-data, mysql, nginx)
  • Użytkownicy administracyjni z uprawnieniami sudo lub na poziomie root
  • Użytkownicy aplikacji powiązani z określonymi stosami oprogramowania
  • Zapomniane lub opuszczone konta pozostawione po usunięciu oprogramowania lub zmianach personelu

Regularne audytowanie tych kont pomaga Ci:

  • Wykryć nieautoryzowane lub podejrzane konta
  • Egzekwować zasadę najmniejszych uprawnień
  • Spełnić wymagania polityk bezpieczeństwa i audytu
  • Zidentyfikować błędnie skonfigurowane powłoki lub katalogi domowe

Dzięki dostępowi root AlexHost, magazynowaniu wspieranemu przez NVMe i wbudowanej ochronie DDoS, uruchamianie tych poleceń jest szybkie, niezawodne i bezpieczne — nawet na systemach produkcyjnych pod obciążeniem.

Zrozumienie pliku /etc/passwd

Wszystkie informacje o kontach użytkowników w Linux są przechowywane w pliku /etc/passwd. Jest to zwykła baza danych tekstowa, którą system operacyjny odczytuje podczas operacji uwierzytelniania i zarządzania użytkownikami. Każdy wiersz w pliku reprezentuje jedno konto użytkownika i ma następujący format strukturalny:

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

Oto co oznacza każde pole:

PoleOpis
usernameNazwa logowania użytkownika
passwordHistorycznie przechowywane tutaj; teraz zastąpione przez x (rzeczywisty skrót znajduje się w /etc/shadow)
UIDNumer identyfikacyjny użytkownika (0 = root, 1–999 = użytkownicy systemowi, 1000+ = zwykli użytkownicy)
GIDIdentyfikator grupy głównej
commentOpcjonalny opis lub pełna nazwa (pole GECOS)
home_directoryŚcieżka do folderu domowego użytkownika
shellDomyślna powłoka przypisana użytkownikowi

Typowy wpis wygląda tak:

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

Zrozumienie tej struktury znacznie ułatwia interpretację każdej metody poniżej.

Metoda 1: Wyświetl wszystkich użytkowników, czytając /etc/passwd bezpośrednio

Najprostsze podejście to wydrukowanie całej zawartości /etc/passwd do terminala. Masz dwie główne opcje w zależności od tego, jak chcesz poruszać się po wyjściu.

Używając cat (najlepsze dla krótkiego wyjścia lub potokowania)

cat /etc/passwd

To zrzuca cały plik na standardowe wyjście. Na typowym serwerze zobaczysz dziesiątki wpisów — większość z nich to konta systemowe.

Używając less (najlepsze do interaktywnego przeglądania)

less /etc/passwd

Pager less pozwala na interaktywne przewijanie pliku. Naciśnij q aby wyjść, / aby wyszukać i klawisze strzałek do nawigacji.

Przykładowe wyjście

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

Wskazówka profesjonalna: Konta z /usr/sbin/nologin lub /bin/false jako powłoką nie mogą logować się interaktywnie — są to konta usług używane przez demony systemowe.

Metoda 2: Użyj getent do zapytania bazy danych użytkowników

Polecenie getent (skrót od *get entries*) pobiera rekordy z baz danych systemowych zdefiniowanych w /etc/nsswitch.conf. Jest to preferowana metoda w nowoczesnych środowiskach Linux, ponieważ działa prawidłowo nawet gdy konta użytkowników pochodzą z katalogów zewnętrznych, takich jak LDAP lub NIS — nie tylko z lokalnego pliku /etc/passwd.

getent passwd

Format wyjścia jest identyczny z /etc/passwd, ale getent zapewnia, że zobaczysz *wszystkich* użytkowników niezależnie od tego, gdzie są przechowywani. Na standardowym VPS AlexHost wyjście będzie zgodne z /etc/passwd, ale używanie getent jest uważane za najlepszą praktykę dla przenośności i kompletności.

Filtruj dla konkretnego użytkownika

getent passwd alexadmin

To zwraca tylko rekord dla użytkownika alexadmin — przydatne do szybkiego sprawdzenia, czy konto istnieje i sprawdzenia jego konfiguracji.

Metoda 3: Wyodrębnij tylko nazwy użytkowników za pomocą cut

Gdy potrzebujesz tylko czystej listy nazw użytkowników — bez UID, katalogów domowych lub informacji o powłoce — połącz getent z poleceniem cut aby wyodrębnić pierwsze pole.

getent passwd | cut -d: -f1

Jak to działa:

  • getent passwd wyświetla pełną bazę danych użytkowników
  • | cut -d: -f1 potokuje to wyjście do cut, który używa : jako ogranicznika (-d:) i wyodrębnia tylko pierwsze pole (-f1) — nazwę użytkownika

Przykładowe wyjście

root
daemon
bin
sys
www-data
alexadmin
deploy
backup

Ta czysta lista jest idealna do skryptowania, rejestrowania lub szybkiego skanowania w poszukiwaniu nieoczekiwanych kont.

Pokaż tylko użytkowników człowieka (logowania)

Konta systemowe zazwyczaj mają UID poniżej 1000. Aby filtrować tylko zwykłych użytkowników, połącz awk ze sprawdzeniem UID:

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

Jest to szczególnie przydatne w środowiskach hostingu współdzielonego lub serwerach z wieloma kontami usług.

Metoda 4: Użyj awk do niestandardowego, selektywnego wyjścia

Polecenie awk to potężne narzędzie do przetwarzania tekstu, które daje Ci pełną kontrolę nad tym, które pola wyświetlić i jak je sformatować. Jest to nieocenione, gdy potrzebujesz szybkiego przeglądu kont użytkowników do celów administracyjnych lub przeglądu bezpieczeństwa.

Wyświetl nazwy użytkowników i katalogi domowe

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

Przykładowe wyjście

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

Wyświetl nazwy użytkowników, UID i powłoki

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

Pokaż tylko użytkowników z prawidłową powłoką logowania

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

To polecenie jest szczególnie przydatne do audytów bezpieczeństwa — ujawnia każde konto, które może faktycznie otworzyć interaktywną sesję powłoki na Twoim serwerze.

Metoda 5: Policz całkowitą liczbę użytkowników

Potrzebujesz szybkiego licznika wszystkich kont użytkowników w systemie?

getent passwd | wc -l

Aby policzyć tylko użytkowników człowieka (UID ≥ 1000):

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

Metoda 6: Sprawdź, którzy użytkownicy mają uprawnienia Sudo

Wiedza o tym, kto może eskalować uprawnienia, jest krytyczna dla bezpieczeństwa. Użyj tych poleceń, aby zidentyfikować konta uprzywilejowane:

Sprawdź członków grupy sudo

getent group sudo

Sprawdź grupę wheel (powszechna na CentOS/RHEL)

getent group wheel

Wyświetl wszystkich sudoers (wymaga root)

sudo cat /etc/sudoers

W Twoim VPS z cPanel lub dowolnym środowisku panelu zarządzania, niektórzy użytkownicy mogą mieć prawa sudo przyznane przez konfigurację specyficzną dla panelu w /etc/sudoers.d/.

Metoda 7: Wyświetl aktualnie zalogowanych użytkowników

Aby zobaczyć, kto jest *aktualnie* zalogowany na Twoim serwerze, użyj polecenia who lub w:

who
w

Polecenie w zawiera więcej szczegółów, w tym to, co każdy użytkownik aktualnie uruchamia, czas logowania i czas bezczynności. Jest to doskonały pierwszy krok podczas badania podejrzanej aktywności na Twoim serwerze.

Praktyczny przepływ pracy bezpieczeństwa: Audyt użytkowników na Twoim VPS Linux

Oto zalecany przepływ pracy, który możesz uruchamiać okresowo na dowolnym serwerze AlexHost, aby utrzymać czysty i bezpieczny środowisko użytkownika:

# 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

Regularne uruchamianie tego audytu — lub automatyzowanie go za pomocą zadania cron — to prosty, ale skuteczny sposób na utrzymanie bezpieczeństwa serwera. Jest to szczególnie ważne, jeśli Twój VPS hostuje wiele aplikacji internetowych lub jeśli przyznałeś dostęp SSH deweloperom lub wykonawcom.

Zarządzanie użytkownikami poza przeglądaniem: Następne kroki

Po zidentyfikowaniu użytkowników możesz podjąć działania. Oto najczęstsze polecenia zarządzania użytkownikami:

ZadaniePolecenie
Dodaj nowego użytkownikasudo adduser newusername
Usuń użytkownika###PPT_NOTR_75_
15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij