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 bezpieczeństwo serwera, dokładna wiedza o tym, którzy użytkownicy istnieją 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 czytania surowych plików systemowych po wykorzystanie potężnych narzędzi wiersza poleceń.
Jeśli korzystasz ze środowiska VPS Hosting z 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 jest ważne dla bezpieczeństwa serwera
Przed przystąpieniem 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 czasie:
- 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 osierocone konta pozostawione po usunięciu oprogramowania lub zmianach personelu
Regularne audytowanie tych kont pomaga Ci:
- Wykryć nieautoryzowane lub podejrzane konta
- Egzekwować zasadę najmniejszych uprawnień
- Zgodnie z polityką bezpieczeństwa i wymogami 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żda linia w pliku reprezentuje jedno konto użytkownika i następuje 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 hash 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 następująco:
alexadmin:x:1001:1001:Alex Admin,,,:/home/alexadmin:/bin/bashZrozumienie tej struktury ułatwia interpretację każdej metody poniżej.
Metoda 1: Wyświetl wszystkich użytkowników czytając /etc/passwd bezpośrednio
Najprostszym podejściem jest wydrukowanie całej zawartości /etc/passwd do terminala. Masz dwie główne opcje w zależności od tego, jak chcesz nawigować po wynikach.
Używając cat (najlepsze dla krótkich wyników lub potoków)
cat /etc/passwdTo wyrzuca całą zawartość pliku 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ć, oraz 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: 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 systemowych baz danych 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 AlexHost VPS wyjście będzie zgodne z /etc/passwd, ale używanie getent jest uważane za najlepszą praktykę ze względu na przenośność i kompletność.
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ębnianie tylko nazw użytkowników za pomocą cut
Gdy potrzebujesz czystej listy nazw użytkowników — bez UID, katalogów domowych ani informacji o powłoce — połącz getent z poleceniem cut, aby wyizolować pierwsze pole.
getent passwd | cut -d: -f1Jak to działa:
getent passwdwyświetla pełną bazę danych użytkowników| cut -d: -f1przesyła to wyjście docut, które 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 tworzenia skryptów, logowania lub szybkiego skanowania w poszukiwaniu nieoczekiwanych kont.
Wyświetlanie tylko zwykłych użytkowników (Login)
Konta systemowe zwykle 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 niestandardowych, selektywnych wyników
Polecenie awk to potężne narzędzie do przetwarzania tekstu, które daje pełną kontrolę nad tym, które pola wyświetlić i jak je formatować. 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-y 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 rzeczywistych (UID ≥ 1000):
awk -F: '$3 >= 1000' /etc/passwd | wc -lMethod 6: Check Which Users Have Sudo Privileges
Wiedza o tym, kto może eskalować uprawnienia, jest krytyczna dla bezpieczeństwa. Użyj tych poleceń, aby zidentyfikować konta uprzywilejowane:
Check the sudo group members
getent group sudoCheck the wheel group (common on CentOS/RHEL)
getent group wheelList all sudoers (requires root)
sudo cat /etc/sudoersNa Twoim VPS z cPanel lub w dowolnym środowisku zarządzanego panelu sterowania, niektórzy użytkownicy mogą mieć prawa sudo przyznane poprzez pliki konfiguracyjne specyficzne dla panelu w /etc/sudoers.d/.
Metoda 7: Wyświetlanie aktualnie zalogowanych użytkowników
Aby zobaczyć, kto jest *aktywnie* zalogowany na Twoim serwerze teraz, 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. 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 Linux VPS
Oto zalecany przepływ pracy, który możesz uruchamiać okresowo na dowolnym serwerze AlexHost, aby utrzymać czystą i bezpieczną środowisko użytkowników:
# 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 -20Uruchamianie tego audytu regularnie — 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 udzieliłeś dostępu SSH programistom lub wykonawcom.
Zarządzanie użytkownikami poza przeglądaniem: Następne kroki
Po zidentyfikowaniu użytkowników może być konieczne podjęcie działań. Oto najczęstsze polecenia zarządzania użytkownikami:
| Zadanie | Polecenie |
|---|---|
| Dodaj nowego użytkownika | sudo adduser newusername |
| Usuń użytkownika | sudo deluser --remove-home username |
| Zablokuj konto | sudo passwd -l username |
| Zmień powłokę użytkownika | sudo chsh -s /usr/sbin/nologin username |
| Dodaj użytkownika do grupy sudo | sudo usermod -aG sudo username |
Te operacje są w pełni obsługiwane w środowiskach Linux VPS AlexHost, gdzie masz nieograniczony dostęp root do zarządzania systemem dokładnie tak, jak potrzebujesz.
Wybór odpowiedniego hostingu AlexHost dla Twoich potrzeb
Polecenia i techniki zawarte w tym przewodniku mają zastosowanie we wszystkich środowiskach serwerów Linux, ale odpowiedni plan hostingu ma znaczący wpływ na wydajność i zarządzalność:
- VPS Hosting — Pełny dostęp root, dedykowane zasoby i magazyn NVMe. Idealny dla programistów i firm wymagających pełnej kontroli nad swoim środowiskiem Linux.
- Serwery dedykowane — Maksymalna wydajność i izolacja dla aplikacji o dużym ruchu lub obciążeń wrażliwych na bezpieczeństwo wymagających ścisłej kontroli dostępu użytkowników.
- Hosting współdzielony — Zarządzane środowisko dla prostszych projektów, gdzie zarządzanie użytkownikami na poziomie serwera obsługuje zespół AlexHost.
- Panele kontrolne VPS — Uprość zarządzanie użytkownikami i serwerem za pomocą intuicyjnych interfejsów graficznych, takich jak cPanel, Plesk lub DirectAdmin.
Podsumowanie
Przeglądanie i audyt kont użytkowników na serwerze Linux to nie tylko rutynowe zadanie administracyjne — to podstawa dobrej higieny bezpieczeństwa. Opanowując metody omówione w tym przewodniku, zyskujesz wyraźną widoczność każdego konta w systemie:
/etc/passwdigetent passwddają ci pełny obrazcutogranicza wynik do samych nazw użytkownikówawkpozwala ci budować niestandardowe, czytelne raportywhoiwujawniają aktywne sesje w czasie rzeczywistym- Zapytania grupowe ujawniają ryzyka eskalacji uprawnień
Niezależnie od tego, czy jesteś doświadczonym administratorem systemu, czy dopiero zaczynasz pracę z zarządzaniem serwerem Linux, te narzędzia są niezbędne. Połącz je z solidną infrastrukturą AlexHost — wyposażoną w magazyn wspierany przez NVMe, pełny dostęp root i ochronę DDoS klasy korporacyjnej — a będziesz mieć wszystko, czego potrzebujesz, aby uruchomić szybki, bezpieczny i dobrze administrowany serwer.
Gotowy do pełnej kontroli nad swoim środowiskiem Linux? Odkryj AlexHost VPS Hosting i zacznij dzisiaj.
na wszystkich usługach hostingowych