Jak mogę sprawdzić, czy moje hasło jest ustawione?

20

Używam tego serwera od kilku miesięcy. Na początku wysłałem administratorowi mój publiczny klucz ssh, a on założył dla mnie konto i użyłem tylko klucza ssh do zalogowania się. Zdecydowanie na początku nie miałem hasła.

Od tego czasu mogłem ustawić hasło za pomocą passwd. W tej chwili, jeśli używam passwd, widzę to.

$ passwd
Changing password for user myusername.
Changing password for myusername.
(current) UNIX password:

Chociaż wydaje się to sugerować, że mam hasło, nie pamiętam, aby to robić.

Jak mogę jednoznacznie stwierdzić, czy moje hasło jest ustawione?

EDYCJA:
Nie mogę się zalogować ani zmienić hasła, ponieważ nie wiem, jakie jest hasło (puste hasło nie działa). Distro to wydanie Fedory 20 (Heisenbug).

sufitowy kat
źródło
Spróbuj zalogować się bez hasła (i oczywiście bez prywatnego klucza ssh).
didierc
Nie mogę się zalogować, ponieważ nie znam hasła, a blank nie działa. Dodałem tę informację w pierwotnym pytaniu.
kot sufitowy
1
W konsoli logowania puste hasło jest takie samo jak brak hasła.
didierc
Otrzymasz to hasło, nawet jeśli dla konta nie skonfigurowano hasła. Jeśli hasło nie zostanie skonfigurowane, passwdnarzeka na nieprawidłowe hasło, bez względu na to, co wpiszesz.
Gilles „SO- przestań być zły”
Sprawdziłem, że w waniliowej Fedorze 20 używającej lokalnych haseł w tle, passwdnie poprosi o twoje aktualne hasło, jeśli go nie masz. Innym sposobem sprawdzenia jest wpisanie su myusername; jeśli nie ma hasła, nie poprosi o takie hasło. Ale wszystko to może zostać zastąpione przez administratora systemu, na przykład poprzez usunięcie nullokopcji z pam_unixwpisów w /etc/pam.d/*, w którym to przypadku nie-administrator nie może powiedzieć, kto ma hasła, a kto nie, chyba że wykonując testy czasowe.
Mark Plotnick

Odpowiedzi:

32

Najlepszym sposobem jest użycie następującego polecenia:

passwd --status username

Od człowieka passwd :

Wyświetl informacje o stanie konta. Informacja o stanie składa się z 7 pól. Pierwsze pole to nazwa użytkownika. Drugie pole wskazuje, czy konto użytkownika ma zablokowane hasło (L), nie ma hasła (NP) lub ma użyteczne hasło (P). Trzecie pole podaje datę ostatniej zmiany hasła. Następne cztery pola to minimalny wiek, maksymalny wiek, okres ostrzeżenia i okres bezczynności hasła. Wiek ten wyrażony jest w dniach.

Jeśli więc drugim polem wyjściowym jest NP, to użytkownik nie ma ustawionego hasła.

Jherran
źródło
Mam$ passwd --status Only root can do that.
sufitowy cat
W takim przypadku spróbuj sudo passwd username --status.
jherran
Mam, $ sudo passwd myusername --status [sudo] password for myusername:ale ponieważ nie znam swojego hasła, nie mogę kontynuować.
kot sufitowy
Testowałem mój oryginalny polecenia i powinien działać dobrze z nowo utworzonego użytkownika bez specjalnych trwałej ondulacji: $ passwd --status testpowrotów test P 02/15/2015 0 99999 7 -1.
jherran
Dziwne. Zastanawiam się, czy administrator skonfigurował to w niestandardowy sposób.
kot sufitowy
4

Możesz to przetestować na 2 proste sposoby.

  1. Zaraz po zmianie hasła, jako typu root login, pojawi się monit o podanie loginu / hasła.

  2. W zależności od prawdopodobieństwa systemowego używasz haseł typu shadow. Plik do tego znajduje /etc/shawdowsię w tym pliku, możesz sprawdzić, czy na koncie nie ma żadnych zmian.

Oto przykład z kontem bez zestawu haseł:

postgres: :16462:0:99999:7:::

Oto, jak może wyglądać użytkownik z hasłem:

dustin:$6$TQ8e8o92$T9KWfcEVeIpDytW/zSAZzM4512wd/DiiuaYwrYWheH3LYpOsISdRxrCLvPqJZZ66QqdetmaV0ALQohx8nQPFKK0:16425:0:99999:7:::

Uwaga między : :jest zaszyfrowanym hasłem, a dla konta postgres nic nie miało

Dustin Hargrove
źródło
W przypadku nr 1 nie mogę zmienić hasła, ponieważ nie wiem, jakie jest hasło. Jeśli wstawię puste, to mówi passwd: Authentication token manipulation error. Dla # 2 nie mam /etc/shawdow. Jest /etc/shadow, ale pozwolenie to 000. (nie jestem pewien, czy to ma znaczenie) Zapomniałem wspomnieć, że mam Fedorę w wersji 20 (Heisenbug). Prawdopodobnie powinienem umieścić te informacje w pierwotnym pytaniu.
kot sufitowy
Błąd tokena pochodzi z niewłaściwych uprawnień. Czy jesteś w trybie pojedynczego użytkownika? Czy podczas rozruchu był to normalny rozruch? Aby sprawdzić, wpisz po prostu „mount”, aby upewnić się, że każda rzecz jest zamontowana jako rw (odczyt i zapis)
Dustin Hargrove
To także złe pozwolenie, co to za dystrybucja?
Dustin Hargrove
Nie sądzę, aby serwer był w trybie pojedynczego użytkownika. Nadal mogę się logować przy użyciu poświadczeń ssh i widzę innych użytkowników za pomocą who. Wszystko wymienione w mountjest wymienione jako rw. Distro to wydanie Fedory 20 (Heisenbug).
kot sufitowy
1

Spróbuj użyć następujących opcji:

passwd -S

Ze strony podręcznika użytkownika passwd (1) czytamy:

-S Zgłoś status hasła do podanego konta. Pierwsza część wskazuje, czy konto użytkownika jest zablokowane (LK), nie ma hasła (NP) lub ma istniejące lub zablokowane hasło (PS). Druga część podaje datę ostatniej zmiany hasła. Kolejne części to minimalny wiek, maksymalny wiek, okres ostrzeżenia i okres bezczynności hasła.

trikelef
źródło
0

Może chcesz zobaczyć plik / etc / passwd. Drugie pole użytkownika wskazuje hasło. Jeśli nic nie ma, możesz nie mieć hasła do logowania. Z drugiej strony, jeśli masz x na tym polu, masz powiązane hasło i może znajdować się w pliku / etc / shadow

dgsleeps
źródło
Dzięki! Jest x. Chyba mam hasło. Brak /etc/shadowpliku.
kot sufitowy
1
@ceilingcat Jeśli widzisz x, to nic nie mówi o tym, czy hasło jest ustawione. Musisz zajrzeć /etc/shadow(co wymaga bycia rootem).
Gilles „SO- przestań być zły”