Lista użytkowników Linux – jak wyświetlić konta w systemie

Oskar Gajzler
Przez
Oskar Gajzler
Redaktor IINTE.edu.pl, na co dzień zajmuje się technologiami internetowymi i tłumaczeniem skomplikowanych tematów na prosty język. Pisze poradniki o tym, jak załatwiać sprawy przez internet, jak...
9 min czytania

1. Gdzie Linux przechowuje listę użytkowników?

W klasycznym systemie Linux wszystkie konta użytkowników (zarówno systemowe, jak i „ludzkie”) są opisane w pliku tekstowym /etc/passwd.

Każdy wiersz tego pliku opisuje jedno konto i zawiera m.in. następujące pola:

  • nazwa użytkownika – unikatowy login używany przy logowaniu;
  • zaszyfrowane hasło – zwykle placeholder x, a właściwy skrót znajduje się w /etc/shadow;
  • UID (User ID) – numeryczny identyfikator użytkownika;
  • GID (Group ID) – numer grupy głównej użytkownika;
  • komentarz/GECO – opis użytkownika, często imię i nazwisko;
  • katalog domowy – ścieżka do $HOME użytkownika;
  • powłoka logowania – np. /bin/bash lub /usr/sbin/nologin.

Przykładowy wiersz wygląda tak:

janek:x:1001:1001:Jan Kowalski,,,:/home/janek:/bin/bash

2. Najprostszy sposób: wyświetlenie pliku /etc/passwd

2.1. Podstawowa lista kont

Aby zobaczyć pełną listę kont w systemie, wpisz:

cat /etc/passwd

Polecenie wypisze na ekranie zarówno konta systemowe (np. daemon, syslog, www-data), jak i zwykłych użytkowników.

Jeżeli kont jest dużo, wygodniej użyć przeglądania stronicowanego:

less /etc/passwd

Przydatne skróty w less to: przewijanie w dół strzałką w dół / Page Down / spacja, przewijanie w górę strzałką w górę / Page Up, zakończenie: q.

Dodatkowa zaleta less: możesz wyszukiwać w środku listy, np. poleceniem /janek szukasz „janek” w dół listy, a klawiszem n przechodzisz do kolejnego dopasowania.

3. Wyświetlanie tylko nazw użytkowników

Surowy /etc/passwd zawiera wiele kolumn, ale często potrzebna jest sama lista loginów. Oto popularne sposoby.

3.1. awk – wydobycie pierwszego pola

Aby wypisać wyłącznie loginy (pierwszą kolumnę rozdzielaną dwukropkiem), użyj:

awk -F: '{print $1}' /etc/passwd

Przełącznik -F: ustawia separator pól na dwukropek, a wyrażenie {print $1} wypisuje tylko pierwsze pole, czyli nazwę użytkownika.

3.2. cut – wycinanie kolumn

Alternatywnie możesz „wyciąć” pierwsze pole z użyciem cut:

cut -d: -f1 /etc/passwd

Przełącznik -d: definiuje ogranicznik pól (dwukropek), a -f1 wskazuje, że interesuje nas pierwsza kolumna.

3.3. sed – prosty filtr z użyciem zamiany

Aby zostawić tylko fragment przed pierwszym dwukropkiem, możesz „obciąć” resztę linii:

sed 's/:.*//' /etc/passwd

Powyższa komenda zamienia dwukropek i wszystko po nim na pusty ciąg, pozostawiając wyłącznie nazwy użytkowników.

4. Liczenie liczby kont w systemie

Czasem przydatna jest sama liczba kont (np. do audytu). Najprościej policzyć liczbę wierszy w /etc/passwd:

cat /etc/passwd | wc -l

Możesz też użyć krótszej formy z bezpośrednim wskazaniem pliku:

wc -l /etc/passwd

5. Konta systemowe vs „prawdziwi” użytkownicy

Współczesne dystrybucje rozdzielają konta systemowe (dla usług, demonów) od kont użytkowników (dla ludzi) poprzez zakresy UID.

5.1. Sprawdzenie zakresów UID zwykłych użytkowników

Zakresy zwykle znajdują się w pliku /etc/login.defs. Aby znaleźć minimalne i maksymalne UID, użyj:

grep -E '^UID_MIN|^UID_MAX' /etc/login.defs

Przykładowy wynik może wyglądać tak:

UID_MIN 1000
UID_MAX 60000

5.2. Lista tylko kont „ludzkich” z użyciem getent

getent odczytuje dane z systemowych baz (w tym z /etc/passwd oraz ewentualnych serwerów LDAP, NIS itp.). Aby wypisać wszystkie wpisy z „bazy passwd”, użyj:

getent passwd

Aby wypisać tylko konta z określonego zakresu UID (np. 1000–60000), zastosuj:

getent passwd {1000..60000}

Jeśli chcesz z tej listy dostać same loginy, dodaj filtr:

getent passwd {1000..60000} | cut -d: -f1

Aby policzyć, ilu jest zwykłych użytkowników, użyj:

getent passwd {1000..60000} | wc -l

6. compgen -u – szybka lista nazw kont

W powłoce Bash dostępne jest polecenie compgen, które potrafi wygenerować wszystkie nazwy kont użytkowników w systemie. Aby je wyświetlić, wpisz:

compgen -u

Dla czytelniejszego efektu możesz ułożyć listę w kolumny:

compgen -u | column

7. Kto jest obecnie zalogowany, a kto był?

Wyświetlenie listy kont to jedno, ale często potrzebne są informacje o sesjach: kto jest aktualnie zalogowany i kto logował się ostatnio.

7.1. Aktualnie zalogowani użytkownicy

Poniższe skrócone zestawienie pomoże szybko dobrać narzędzie do potrzeb:

  • krótka lista loginów – polecenie users zwraca nazwy kont aktualnie zalogowanych użytkowników;
  • szczegółowe sesje – polecenie who pokazuje login, terminal, czas logowania oraz ewentualny adres zdalny;
  • najwięcej szczegółów – polecenie w prezentuje zalogowanych, czas aktywności, obciążenie systemu i wykonywane komendy.

Aby wyświetlić krótką listę loginów, wpisz:

users

Aby zobaczyć szczegóły sesji, użyj:

who

Aby uzyskać najbardziej rozbudowane informacje, zastosuj:

w

7.2. Historia logowań – last

Aby wyświetlić ostatnich 10 logowań (dowolnych użytkowników), uruchom:

last -10

Aby sprawdzić ostatnie logowania konkretnego użytkownika, podaj jego login:

last -10 nazwa_użytkownika

8. Informacje o konkretnym użytkowniku

8.1. Jak sprawdzić, pod jakim kontem pracujesz?

Twoja aktualna nazwa użytkownika to wynik polecenia:

whoami

8.2. id – UID, GID i grupy

Aby wyświetlić swój numer UID, GID oraz wszystkie grupy, do których należysz, wpisz:

id

Aby sprawdzić informacje o innym użytkowniku, podaj jego login:

id nazwa_użytkownika

8.3. groups – grupy użytkownika

Aby sprawdzić, w jakich grupach znajduje się dany użytkownik, użyj:

groups nazwa_użytkownika

9. Graficzna lista użytkowników w Ubuntu (środowisko graficzne)

Jeżeli korzystasz z Ubuntu z interfejsem graficznym (GNOME itp.), listę kont sprawdzisz bez używania terminala:

  1. otwórz Ustawienia systemowe;
  2. przejdź do sekcji Konta (lub „Użytkownicy” – zależnie od wersji);
  3. w lewej kolumnie zobaczysz listę użytkowników zarejestrowanych w systemie;
  4. w prawej części okna znajdziesz szczegóły i ustawienia danego konta (typ konta, uprawnienia itp.).

10. Podstawowe operacje administracyjne (kontekst)

Poniższe polecenia administracyjne zwykle wykonuje się po sprawdzeniu listy kont.

Uwaga: komendy administracyjne wykonuje się zwykle z sudo lub jako root. Niewłaściwe użycie może unieruchomić system.

Szybkie podsumowanie dostępnych akcji wygląda następująco:

  • dodanie nowego użytkownika – utworzenie konta w systemie;
  • usunięcie użytkownika – skasowanie wpisu konta;
  • modyfikacja użytkownika – zmiana grup, blokada konta i inne parametry;
  • finger – dodatkowe informacje o użytkowniku (jeśli pakiet jest zainstalowany).

Aby dodać nowego użytkownika, wpisz:

sudo useradd nazwa_użytkownika

W praktyce często używa się opcji tworzących katalog domowy i ustawiających powłokę (np. -m, -s).

Aby usunąć użytkownika, użyj:

sudo userdel nazwa_użytkownika

To polecenie aktualizuje bazy kont i usuwa wpisy dotyczące wskazanego użytkownika.

Aby zmodyfikować konto (np. zablokować logowanie), zastosuj:

sudo usermod -L nazwa_użytkownika

W celu pobrania dodatkowych informacji o użytkowniku (jeśli polecenie jest dostępne), użyj:

finger nazwa_użytkownika

11. Praktyczne scenariusze – gotowe „recepty”

11.1. Szybka lista wszystkich kont w systemie

Aby wypisać wszystkie loginy, użyj jednej z poniższych komend:

cut -d: -f1 /etc/passwd

albo:

compgen -u

11.2. Lista tylko „normalnych” użytkowników (UID 1000–60000)

Aby wypisać same loginy zwykłych użytkowników, wykonaj:

getent passwd {1000..60000} | cut -d: -f1

Jeśli zakres w twoim systemie jest inny, sprawdź go i podstaw odpowiednie wartości:

grep -E '^UID_MIN|^UID_MAX' /etc/login.defs

11.3. Sprawdzenie, ilu jest zwykłych użytkowników

Policz wpisy w określonym zakresie UID:

getent passwd {1000..60000} | wc -l

11.4. Sprawdzenie, kto jest obecnie zalogowany

Aby zobaczyć pełny obraz aktywnych sesji, wpisz:

w

W prostszej formie wyświetlisz same loginy:

users

11.5. Sprawdzenie danych o konkretnym koncie

Aby wyświetlić UID, GID i grupy użytkownika, użyj:

id nazwa_użytkownika

Jeśli dostępny jest finger, skorzystaj z:

finger nazwa_użytkownika

12. Bezpieczeństwo i dobre praktyki

  • nie usuwaj pochopnie kont, których nie znasz – wiele z nich to konta systemowe potrzebne usługom (np. www-data, mysql, daemon),
  • rób kopie zapasowe kluczowych plików (/etc/passwd, /etc/shadow, /etc/group) przed większymi zmianami w kontach użytkowników,
  • w środowiskach serwerowych korzystaj z getent, ponieważ może on uwzględniać użytkowników z zewnętrznych źródeł (LDAP, NIS), a nie tylko lokalny /etc/passwd,
  • regularnie przeglądaj listę użytkowników i logowania (np. last), aby wykrywać nieużywane lub podejrzane konta.
Udostępnij ten artykuł
Obserwuj
Redaktor IINTE.edu.pl, na co dzień zajmuje się technologiami internetowymi i tłumaczeniem skomplikowanych tematów na prosty język. Pisze poradniki o tym, jak załatwiać sprawy przez internet, jak bezpiecznie korzystać z sieci i jak dobierać sprzęt oraz oprogramowanie. Prywatnie tropi nowinki technologiczne i testuje je, zanim opisze.
Brak komentarzy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *