Zgubione hasło użytkownika na serwerze Linux: jak je zresetować?

17

Na serwerze użytkownik 16040 stracił swoje hasło. Mam hasło użytkownika root, ale nie mam hasła użytkownika 16040. Jak mogę zresetować hasło?

Dzięki passwd 16040unix zapytaj mnie o bieżące hasło, którego nie mam. Czy istnieje polecenie resetowania hasła użytkownika bez aktualnego hasła?

passwd 16040
Changing password for 16040.
Current password for [email protected]:
Catanzaro
źródło

Odpowiedzi:

24

Jeśli działasz passwd 16040jako root, nie zostaniesz poproszony o podanie aktualnego hasła.

Po zmianie hasła należy rozważyć wydanie chage -d 0 16040. To ustawia datę ostatniej zmiany hasła daleko w przeszłości; zakładając, że hasła wygasają w twoim systemie, zmusi to użytkownika do zmiany hasła po zalogowaniu. Daje to szansę na wybranie hasła, które jest im znane.

Artur Szymczak
źródło
3

Powinieneś wydać passwd 16040jako root ( sudo passwd 16040jeśli twój użytkownik jest w pliku sudoers), aby zmienić swoje hasło. Nie poprosi cię o obecny.

Lub, jeśli masz fizyczny dostęp do skrzynki, możesz dołączyć init=/bin/bashjako parametr jądra, aby uzyskać dostęp do roota, a następnie wydać polecenie passwd 16040.

peperunas
źródło
3
Posługiwanie się poleceniami wbudowanymi jest dość zagadkowe i można je łatwo interpretować jako część polecenia. Proszę używać tylko monitów w cudzysłowach blokowych. Ponadto # >jest raczej rzadki i tutaj >po prostu zachęca do bycia interpretowanym jako część polecenia - powszechną praktyką jest używanie prostych #dla root-shellsów i $dla użytkownika innego niż root.
Andreas Wiese
Masz rację, zredagowałem swoją odpowiedź dla jasności. Dzięki.
peperunas
1

Jeśli nie możesz zalogować się bezpośrednio jako root, możesz spróbować

  • sudo /usr/bin/passwd 16040.
  • sudo -i i po /usr/bin/passwd 16040

Zakładam, że passwdjest w / usr / bin (możesz to sprawdzić za pomocą polecenia which passwd)

Hastur
źródło
sudo bashuruchamianie rootpowłoki jest (choć powszechne) naprawdę, bardzo złą sudopraktyką. To sudo -slub sudo -i(non-login lub login-shell, odpowiednio.). To nawet honoruje twoją domyślną powłokę /etc/passwdbez konieczności samodzielnego dbania o nią. Ponadto bashbrak kompletnej ścieżki sam w sobie jest złym pomysłem, ponieważ byłby to jeden z pierwszych fałszywych plików binarnych, w które złośliwy użytkownik włożyłby gdzieś $PATH.
Andreas Wiese
Zgadzam się z pełną specyfikacją ścieżki i wykorzystaniem sudo -i, więc zmodyfikowałem odpowiedź ... ale jeśli mówisz o bezpieczeństwie i możliwości ukrycia się w trojgu, $PATHbyć może lepiej jest unikać, sudo -sponieważ dodajesz przynajmniej $USER/binkatalog i wszystkie aliasy, jakie możesz sobie wyobrazić ... :-)
Hastur
W rzeczy sudosamej , ale zależy to od konfiguracji: domyślna konfiguracja dostarczona z sudonie $HOMEustawia zmiennej, więc skończyłoby się to pozyskiwaniem własnych plików rc, a nie $SUDO_USERtych.
Andreas Wiese