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
sudolub 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:shellOto co oznacza każde pole:
| Pole | Opis |
|---|---|
username | Nazwa logowania użytkownika |
password | Historycznie przechowywane tutaj; teraz zastąpione przez x (rzeczywisty skrót znajduje się w /etc/shadow) |
UID | Numer identyfikacyjny użytkownika (0 = root, 1–999 = użytkownicy systemowi, 1000+ = zwykli użytkownicy) |
GID | Identyfikator grupy głównej |
comment | Opcjonalny opis lub pełna nazwa (pole GECOS) |
home_directory | Ścieżka do folderu domowego użytkownika |
shell | Domyślna powłoka przypisana użytkownikowi |
Typowy wpis wygląda tak:
alexadmin:x:1001:1001:Alex Admin,,,:/home/alexadmin:/bin/bashZrozumienie 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/passwdTo 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/passwdPager 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/bashWskazó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 passwdFormat 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 alexadminTo 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: -f1Jak to działa:
getent passwdwyświetla pełną bazę danych użytkowników| cut -d: -f1potokuje to wyjście docut, 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
backupTa 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/passwdJest 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/deployWyś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 -lAby policzyć tylko użytkowników człowieka (UID ≥ 1000):
awk -F: '$3 >= 1000' /etc/passwd | wc -lMetoda 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 sudoSprawdź grupę wheel (powszechna na CentOS/RHEL)
getent group wheelWyświetl wszystkich sudoers (wymaga root)
sudo cat /etc/sudoersW 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:
whowPolecenie 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 -20Regularne 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:
| Zadanie | Polecenie |
|---|---|
| Dodaj nowego użytkownika | sudo adduser newusername |
| Usuń użytkownika | ###PPT_NOTR_75_ |
