Zarządzanie użytkownikami na serwerze Linux
Poziom: Początkujący
Szacowany czas: ok. 30 minut
Cel: Poznać narzędzia wiersza poleceń do tworzenia i utrzymywania kont, skonfigurować standardowy dostęp do usług i bezpiecznie zachować ciągłość działania.
Wprowadzenie
Zarządzanie użytkownikami w Linuksie to podstawowa umiejętność każdego administratora systemów. Właściwa kontrola dostępu zapewnia stabilność, bezpieczeństwo i rozliczalność serwera. W tym poradniku omówimy podstawy dodawania kont, nadawania uprawnień (w tym eskalacji uprawnień w Linuksie) oraz bezpiecznego utrzymywania standardowej konfiguracji usług.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że spełnione są następujące warunki:
- System operacyjny: Ubuntu 22.04/24.04 LTS, Debian 12/13, AlmaLinux/Rocky Linux 8/9/10, RHEL 8/9/10
- Dostęp: dostęp sudo lub root do serwera przez SSH
- System: działający menedżer pakietów
- Wymagana wiedza: swobodne posługiwanie się wierszem poleceń Linuksa
Kluczowe pojęcia
Zanim wprowadzisz zmiany, warto zrozumieć, jak działają konta:
- UID (User ID): unikalny identyfikator liczbowy przypisany każdemu użytkownikowi do śledzenia własności i uprawnień.
- GID (Group ID): podstawowy identyfikator liczbowy przypisujący użytkownika do konkretnej grupy. Grupy w Linuksie porządkują wielu użytkowników pod kątem wspólnych uprawnień.
- Katalog domowy: domyślny katalog (
/home/username), w którym przechowywane są osobiste pliki i konfiguracje użytkownika. - Powłoka logowania: interpreter poleceń (np.
/bin/bash), który uruchamia się po zalogowaniu autoryzowanego użytkownika. Autoryzowany użytkownik to konto, które ma zezwolenie na dostęp do systemu. - Hasło: tajny ciąg znaków używany do uwierzytelniania użytkowników w Linuksie. Uwierzytelnianie to proces weryfikacji tożsamości użytkownika.
- Adduser: interaktywny skrypt (front-end) do tworzenia kont, używany głównie w systemach Debian/Ubuntu.
- Useradd: natywne, niskopoziomowe narzędzie binarne do tworzenia kont we wszystkich dystrybucjach Linuksa.
- Blokada konta (Account lock): wyłączenie logowania opartego na haśle w celu zabezpieczenia serwera.
- Wygaśnięcie konta (Account expiration): automatyczne wyłączenie konta w określonym dniu.
Krok 1: Tworzenie nowego użytkownika
Aby utworzyć nowego użytkownika, użyj polecenia adduser (w Debianie/Ubuntu) lub useradd (w RHEL/AlmaLinux).
W poniższych przykładach zastąp johndoe wybraną nazwą użytkownika. Uruchom następujące polecenie, aby utworzyć użytkownika o nazwie johndoe:
sudo adduser johndoe
Zostaniesz poproszony o podanie hasła i opcjonalnych danych użytkownika.
Oczekiwany wynik:
Wynik będzie zawierał wiersze dotyczące utworzenia grupy, użytkownika i katalogu domowego oraz skopiowania plików z /etc/skel. Dokładny UID/GID zależy od systemu.
W RHEL/AlmaLinux użyj sudo useradd -m johndoe (flaga -m zapewnia utworzenie /home/johndoe) i ustaw hasło ręcznie poleceniem passwd: sudo passwd johndoe.
Krok 2: Jak działa sudo na serwerze Linux
Standardowi użytkownicy nie mogą zmieniać konfiguracji systemu ani instalować oprogramowania. Polecenie sudo w Linuksie pozwala uprawnionym użytkownikom wykonywać polecenia z uprawnieniami roota.
2.1 Dodawanie użytkownika do grupy sudo
Najłatwiej nadać uprawnienia, dodając użytkownika do predefiniowanej grupy administracyjnej za pomocą polecenia usermod.
Ubuntu/Debian:
sudo usermod -aG sudo johndoe
RHEL/AlmaLinux:
sudo usermod -aG wheel johndoe
Polecenie usermod dołącza (-a) użytkownika do grupy dodatkowej (-G). Użytkownik johndoe może teraz wykonywać zadania administracyjne, poprzedzając polecenia słowem sudo. Po pomyślnym wykonaniu polecenie nie wypisuje żadnego wyniku. Możesz to sprawdzić poleceniem groups johndoe - grupa sudo (lub wheel) powinna pojawić się na liście.
Krok 3: Zmiana właściwości użytkownika
Może być konieczne zablokowanie konta lub zmiana jego hasła.
3.1 Zmiana hasła
Aby wymusić zmianę hasła lub zaktualizować zapomniane hasło, uruchom poniższe polecenie, korzystając z polecenia passwd:
sudo passwd johndoe
Zostaniesz poproszony o wprowadzenie i potwierdzenie nowego hasła. Po zakończeniu użytkownik może logować się przy użyciu nowych danych uwierzytelniających.
3.2 Blokowanie konta
Jeśli użytkownik odchodzi z firmy, należy zastosować blokadę konta, aby zabezpieczyć serwer:
sudo usermod -L johndoe
Konto zostaje natychmiast zablokowane, co uniemożliwia jakiekolwiek nowe logowanie oparte na haśle. Aby później odblokować konto, użyj sudo usermod -U johndoe.
Oba polecenia nie wypisują żadnego wyniku. Status możesz sprawdzić poleceniem passwd -S johndoe (status L = zablokowane, P = aktywne).
3.3 Ustawianie wygaśnięcia konta
Aby automatycznie wyłączyć konto w określonym dniu, ustaw wygaśnięcie konta:
sudo usermod -e 2026-12-31 johndoe
Dzięki temu tymczasowi wykonawcy automatycznie tracą dostęp.
Datę wygaśnięcia możesz sprawdzić poleceniem sudo chage -l johndoe. Może ona zostać pokazana o jeden dzień wcześniej z powodu przetwarzania granicy UTC - to normalne, a konto i tak wygaśnie prawidłowo.
Krok 4: Bezpieczne używanie polecenia sudo w Linuksie dla bezpieczeństwa serwera
Plik sudoers (/etc/sudoers) dokładnie określa, kto może używać sudo i co może wykonywać.
Do edycji pliku sudoers zawsze używaj visudo. Sprawdza ono błędy składni przed zapisem, co zapobiega zablokowaniu dostępu.
Zalecaną dobrą praktyką jest utworzenie osobnego pliku dla każdej reguły zamiast edytowania pliku głównego:
sudo visudo -f /etc/sudoers.d/johndoe
Upraszcza to wycofywanie reguł i zmniejsza ryzyko uszkodzenia głównej konfiguracji sudoers.
Aby umożliwić użytkownikowi johndoe ponowne uruchomienie usługi synchronizacji czasu bez hasła, dodaj odpowiedni wiersz dla swojego systemu:
Ubuntu/Debian:
johndoe ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart systemd-timesyncd
RHEL/AlmaLinux:
johndoe ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart chronyd
Zapisz plik i zamknij edytor. Użytkownik johndoe może teraz restartować usługę bez pytania o hasło.
Użytkownik johndoe musi uruchomić polecenie jako sudo systemctl restart systemd-timesyncd (lub chronyd) - dokładnie przez sudo. Bezpośrednie wywołanie restartu usługi bez sudo zwróci błąd polkit wymagający interaktywnego uwierzytelnienia.
Nigdy nie edytuj plików sudoers bezpośrednio za pomocą nano lub vim. Błąd składni zablokuje dostęp sudo w całym systemie i będzie wymagał uruchomienia w trybie ratunkowym, aby go naprawić.
Krok 5: Usuwanie użytkownika
Gdy konto przestaje być potrzebne, usuń je, aby utrzymać porządek na serwerze.
Aby usunąć użytkownika, ale zachować jego pliki:
sudo deluser johndoe
W RHEL/AlmaLinux: sudo userdel johndoe
Uruchomienie polecenia bez --remove-home (lub -r) pozostawia na dysku /home/johndoe i pliki użytkownika. Jest to przydatne do archiwizacji danych, ale należy pamiętać o pozostałych plikach.
Aby usunąć użytkownika wraz z katalogiem domowym:
sudo deluser --remove-home johndoe
W RHEL/AlmaLinux: sudo userdel -r johndoe
Aby usunąć plik sudoers użytkownika, jeśli go utworzono, uruchom:
sudo rm -f /etc/sudoers.d/johndoe
Konto użytkownika zostało całkowicie usunięte z systemu.
Przed usunięciem użytkownika upewnij się, że żadne usługi działające w tle nie polegają na jego UID ani grupach Linuksa.
Weryfikacja
Aby zweryfikować nowego użytkownika i jego członkostwo w grupach, użyj polecenia id:
id johndoe
Oczekiwany wynik:
Wynik pokaże UID, GID (który może różnić się od 1001) oraz listę grup. Sprawdź, czy obecna jest grupa sudo (Debian/Ubuntu) lub wheel (RHEL/AlmaLinux). W Debianie/Ubuntu na liście może pojawić się także grupa users - to normalne.
Aby przetestować dostęp sudo, przełącz się na nowego użytkownika:
su - johndoe
Następnie uruchom polecenie wymagające uprawnień:
sudo ls /root
Jeśli zostaniesz o to poproszony, wpisz hasło użytkownika johndoe (ustawione w Kroku 1), a nie hasło roota. Powinieneś zobaczyć zawartość katalogu /root.
Rozwiązywanie problemów
- Błędy składni w sudoers: jeśli przypadkowo uszkodzisz plik sudoers, często można to naprawić, uruchamiając
pkexec visudoz innej sesji. Jeślipkexecjest niedostępny, musisz uruchomić serwer w trybie odzyskiwania/jednego użytkownika, aby edytować plik. - Utracony dostęp sudo: jeśli utracisz dostęp sudo, ale nadal znasz hasło roota, zaloguj się bezpośrednio jako root (np. przez
su -), aby poprawić członkostwo w grupach. - Sprawdzanie uprawnień użytkownika: aby dokładnie sprawdzić, jakie polecenia użytkownik może wykonywać, użyj
sudo -l -U johndoe.
Wycofanie zmian (rollback)
Jeśli chcesz cofnąć zmiany wprowadzone w tym poradniku:
- Usuń użytkownika z grupy sudo:
sudo gpasswd -d johndoe sudo(lubwheel). - Cofnij wszelkie dodatki wprowadzone przez
visudo. - Usuń użytkownika wraz z katalogiem domowym:
sudo deluser --remove-home johndoe(lubsudo userdel -r johndoe). - Usuń jego dedykowany plik sudoers:
sudo rm -f /etc/sudoers.d/johndoe.
Podsumowanie
Prawidłowa konfiguracja kont pozwala bezpiecznie zarządzać użytkownikami w Linuksie, nie narażając bezpieczeństwa systemu. Rozumiejąc polecenie adduser, polecenie usermod i polecenie passwd, a także bezpiecznie konfigurując sudo, utrzymujesz stabilne środowisko, w którym działania są rozliczalne.
Wersja dokumentu: 1.0
Ostatnia aktualizacja: maj 2026
Właściciel: Zespół dokumentacji technicznej