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.
- 1. Gdzie Linux przechowuje listę użytkowników?
- 2. Najprostszy sposób: wyświetlenie pliku /etc/passwd
- 3. Wyświetlanie tylko nazw użytkowników
- 4. Liczenie liczby kont w systemie
- 5. Konta systemowe vs „prawdziwi” użytkownicy
- 6. compgen -u – szybka lista nazw kont
- 7. Kto jest obecnie zalogowany, a kto był?
- 8. Informacje o konkretnym użytkowniku
- 9. Graficzna lista użytkowników w Ubuntu (środowisko graficzne)
- 10. Podstawowe operacje administracyjne (kontekst)
- 11. Praktyczne scenariusze – gotowe „recepty”
- 12. Bezpieczeństwo i dobre praktyki
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
$HOMEużytkownika; - powłoka logowania – np.
/bin/bashlub/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
userszwraca nazwy kont aktualnie zalogowanych użytkowników; - szczegółowe sesje – polecenie
whopokazuje login, terminal, czas logowania oraz ewentualny adres zdalny; - najwięcej szczegółów – polecenie
wprezentuje 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:
- otwórz Ustawienia systemowe;
- przejdź do sekcji Konta (lub „Użytkownicy” – zależnie od wersji);
- w lewej kolumnie zobaczysz listę użytkowników zarejestrowanych w systemie;
- 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
sudolub 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.








