passwd — jak zmienić hasło użytkownika w Linux krok po kroku

passwd — jak zmienić hasło użytkownika w Linux krok po kroku
Komenda passwd w Linux pozwala zmienić hasło swoje lub innego użytkownika. Pokazuję jak jej użyć, jak wymusić zmianę hasła przy logowaniu, jak ustawić politykę haseł i jak zresetować zapomniane hasło root.

passwd to komenda Linux do zmiany hasła użytkownika. Używasz jej, gdy: chcesz zmienić własne hasło (bezpieczeństwo), administrator wymusza zmianę, zapomniałeś hasło innego użytkownika (jako root), konfigurujesz nowe konto na serwerze, lub automatyzujesz politykę haseł.

W tym poradniku pokazuję jak użyć passwd na Linux — zmiana własnego hasła, hasła innego użytkownika, wymuszenie zmiany przy logowaniu, polityka haseł i reset hasła root.

Zmiana własnego hasła

passwd

System poprosi o:

  1. Aktualne hasło (Current password) — wpisujesz stare hasło (nie widać znaków — to normalne w Linux)
  2. Nowe hasło (New password) — wpisujesz nowe
  3. Potwierdzenie (Retype new password) — wpisujesz nowe ponownie
$ passwd
Changing password for user jan.
Current password: ********
New password: ********
Retype new password: ********
passwd: password updated successfully

Hasło musi spełniać wymagania systemu (domyślnie: min. 8 znaków, nie za proste, nie słownikowe). Jeśli jest za słabe, passwd odrzuci i poprosi o inne.

Zmiana hasła innego użytkownika (jako root)

sudo passwd nazwauzytkownika

Przykład:

sudo passwd anna
New password: ********
Retype new password: ********
passwd: password updated successfully

Root (lub użytkownik z sudo) nie musi znać starego hasła — ustawia nowe bezpośrednio. Przydatne gdy: pracownik zapomniał hasło, tworzysz nowe konto, resetujesz hasło po incydencie bezpieczeństwa.

Zmiana hasła root

sudo passwd root

Ustawia nowe hasło konta root. Na systemach, które domyślnie blokują logowanie root (Ubuntu): to odblokuje konto root. Na serwerach VPS: root zwykle ma hasło od początku — zmieniasz je natychmiast po pierwszym logowaniu.

Wymuszenie zmiany hasła przy następnym logowaniu

sudo passwd -e nazwauzytkownika

-e (expire) = oznacz hasło jako wygasłe. Przy następnym logowaniu system wymusi zmianę hasła. Przydatne po: resecie hasła przez admina (żeby użytkownik sam ustawił swoje), naruszeniu bezpieczeństwa (wymuś zmianę u wszystkich).

# Wymuś zmianę hasła dla wszystkich użytkowników:
for user in $(cut -d: -f1 /etc/passwd); do sudo passwd -e $user; done

Blokowanie i odblokowywanie konta

# Zablokuj konto (użytkownik nie może się zalogować):
sudo passwd -l nazwauzytkownika

# Odblokuj konto:
sudo passwd -u nazwauzytkownika

-l (lock) dodaje ! przed hashem hasła w /etc/shadow — hasło przestaje działać, ale konto istnieje. -u (unlock) usuwa !. Przydatne: pracownik odchodzi → lock → dane zachowane, ale dostęp zablokowany.

Sprawdzenie statusu hasła

sudo passwd -S nazwauzytkownika

Wynik: jan P 04/20/2026 0 99999 7 -1

  • P = hasło ustawione (Password). L = zablokowane (Locked). NP = brak hasła.
  • 04/20/2026 = data ostatniej zmiany hasła
  • 0 = min. dni między zmianami
  • 99999 = max. dni ważności (99999 = nigdy nie wygasa)
  • 7 = dni ostrzeżenia przed wygaśnięciem

Polityka haseł — chage

chage (change age) to komenda do konfiguracji polityki wygasania haseł — uzupełnia passwd o zarządzanie terminami:

# Hasło wygasa co 90 dni:
sudo chage -M 90 nazwauzytkownika

# Min. 7 dni między zmianami (anty-cycling):
sudo chage -m 7 nazwauzytkownika

# Ostrzeżenie 14 dni przed wygaśnięciem:
sudo chage -W 14 nazwauzytkownika

# Konto wygasa 31 grudnia 2026:
sudo chage -E 2026-12-31 nazwauzytkownika

# Pokaż pełną politykę:
sudo chage -l nazwauzytkownika

Wynik chage -l:

Last password change                : Apr 20, 2026
Password expires                    : Jul 19, 2026
Password inactive                   : never
Account expires                     : Dec 31, 2026
Minimum number of days between password change : 7
Maximum number of days between password change : 90
Number of days of warning before password expires : 14

Gdzie Linux przechowuje hasła — /etc/shadow

Hasła NIE są przechowywane w /etc/passwd (mimo nazwy). Przechowuje je /etc/shadow — plik dostępny tylko dla root:

sudo cat /etc/shadow | grep jan
# jan:$6$rounds=656000$salt$hash...:19467:0:99999:7:::
  • $6$ = algorytm SHA-512 (standard)
  • rounds=656000 = liczba iteracji hashowania (brute force jest wolniejszy)
  • salt = losowa sól (unikatowa per użytkownik)
  • hash = zahashowane hasło

Hasła w Linux są hashowane (jednokierunkowe) — nie da się „odczytać” hasła z /etc/shadow. System przy logowaniu hashuje wpisane hasło i porównuje z zapisanym hashem. Jeśli się zgadzają — logowanie udane.

Reset zapomnianego hasła root (bez dostępu)

Jeśli zapomniałeś hasło root i nie masz innego konta z sudo:

Metoda 1. GRUB recovery mode

  1. Zrestartuj serwer.
  2. W menu GRUB: wybierz „Advanced options” → „Recovery mode” → „root shell”.
  3. Zamontuj system plików z prawem zapisu: mount -o remount,rw /
  4. Zmień hasło: passwd root
  5. Reboot: reboot

Metoda 2. VPS — konsola KVM/VNC w panelu hostingu

Większość dostawców VPS (DigitalOcean, Hetzner, OVH, cyber_Folks) oferuje konsolę KVM/VNC w panelu — łączysz się z serwerem „jak przy monitorze”, pomijając SSH. Tam: GRUB → recovery → zmiana hasła.

Metoda 3. Live USB / rescue mode

Dla serwerów fizycznych: bootuj z Live USB (Ubuntu Live), zamontuj partycję systemową, edytuj /etc/shadow (usuń hash hasła root = logowanie bez hasła) → reboot → ustaw nowe hasło.

Dobre praktyki — bezpieczeństwo haseł na serwerze

  • Zmień hasło root natychmiast po pierwszym logowaniu na nowy VPS
  • Używaj kluczy SSH zamiast haseł — klucz SSH jest bezpieczniejszy niż jakiekolwiek hasło. PasswordAuthentication no w /etc/ssh/sshd_config
  • Wymuś silne hasła — zainstaluj libpam-pwquality: sudo apt install libpam-pwquality → konfiguracja w /etc/security/pwquality.conf (min. długość, wymagane klasy znaków)
  • Polityka wygasaniachage -M 90 dla kont serwisowych
  • Nie używaj konta root do codziennej pracysudo zamiast root login
  • Fail2ban — blokuj IP po kilku nieudanych próbach logowania SSH

Najczęściej zadawane pytania

Jak zmienić hasło bez znajomości starego?

Jako root lub sudo: sudo passwd nazwauzytkownika — nie pyta o stare hasło. Jako zwykły użytkownik: nie da się — musisz znać aktualne hasło, żeby je zmienić (lub poprosić admina).

Czy passwd zmienia hasło natychmiast?

Tak — zmiana jest natychmiastowa. Od następnego logowania obowiązuje nowe hasło. Aktywne sesje SSH nie są przerywane — ale nowe logowania wymagają nowego hasła.

Jak ustawić hasło na puste (brak hasła)?

sudo passwd -d nazwauzytkownika — usuwa hasło (-d = delete). Użytkownik loguje się bez hasła. Nie rób tego na serwerze dostępnym z internetu — to zaproszenie dla hakerów.

passwd na macOS?

macOS nie używa klasycznego passwd. Zmiana hasła: Preferencje systemowe → Użytkownicy i grupy → Zmień hasło. Z terminala: dscl . -passwd /Users/nazwauzytkownika lub System Preferences.

Podsumowanie

passwd to 3 komendy, które musisz znać: passwd (zmień swoje hasło), sudo passwd user (zmień hasło innego użytkownika), sudo passwd -e user (wymuś zmianę przy logowaniu). Do polityki wygasania: chage -M 90 user. Do blokowania: passwd -l user. I najważniejsze: na serwerze używaj kluczy SSH zamiast haseł — to jedyny sposób na naprawdę bezpieczny dostęp.

Picture of Tomasz Zieliński
Tomasz Zieliński

Tomasz zajmuje się tematyką SEO, sztucznej inteligencji i automatyzacji pracy w marketingu internetowym. W swoich artykułach analizuje zmiany w algorytmach wyszukiwarek, rozwój narzędzi AI oraz nowe sposoby tworzenia i optymalizacji treści. Interesuje go przede wszystkim to, jak technologia wpływa na codzienną pracę specjalistów SEO, marketerów i twórców internetowych.

Facebook
Twitter
LinkedIn
Pinterest

Najnowsze Wpisy

Śledź nas