Jak znaleźć użytkownika z pustym hasłem w systemie Linux?


13

Jak znaleźć użytkownika z pustym hasłem w systemie Linux?

Odpowiedzi:


15

To jest krótsza i bardziej precyzyjna wersja odpowiedzi AndreKR:

sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1

Ma tylko jedno połączenie cuti znajdzie wpisy dowolnego z poniższych formularzy:

foo:!: ...
bar:*: ...
baz:: ...

Jeśli chcesz tylko naprawdę pusty:

sudo getent shadow | grep '^[^:]*::' | cut -d: -f1

Jeśli masz GNU grep, możesz cutcałkowicie wyeliminować :

sudo getent shadow | grep -Po '^[^:]*(?=:.?:)'

lub

sudo getent shadow | grep -Po '^[^:]*(?=::)'


3

Zaszyfrowane hasło to drugie pole w / etc / shadow.

Jeśli drugie pole jest puste, hasło jest puste:

awk -F":" '($2 == "") {print $1}' /etc/shadow

!i *jest nieprawidłowe hasło (użytkownik nie może się zalogować):

awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow

2

Ich wpis nie /etc/shadow/będzie zawierał skrótu do hasła. Musisz być jednak zalogowany jako root, aby móc je zobaczyć.


0

Czy użytkownik „ użytkownik ” ma puste hasło?

getent shadow | grep 'user:\$' | cut -d':' -f 2 | grep '\w' -c -m 1  

return 1 w przypadku niepowodzenia - hasło nie jest puste
return 0 w przypadku sukcesu - hasło jest ustawione

Mam nadzieję, że to jest dokładne

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.