Zarządzanie użytkownikami Linux: adduser, usermod i sudo | INTROSERV
EUR
european

EUR

usa

USD

Poland Pl
Ex. VAT Ex. VAT 0%

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.

Info

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.

Info

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.

Warning

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

Warning

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.

Info

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 visudo z innej sesji. Jeśli pkexec jest 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:

  1. Usuń użytkownika z grupy sudo: sudo gpasswd -d johndoe sudo (lub wheel).
  2. Cofnij wszelkie dodatki wprowadzone przez visudo.
  3. Usuń użytkownika wraz z katalogiem domowym: sudo deluser --remove-home johndoe (lub sudo userdel -r johndoe).
  4. 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

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA