Jak znaleźć użytkownika z pustym hasłem w systemie Linux?
13
To jest krótsza i bardziej precyzyjna wersja odpowiedzi AndreKR:
sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1
Ma tylko jedno połączenie cut
i 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 cut
całkowicie wyeliminować :
sudo getent shadow | grep -Po '^[^:]*(?=:.?:)'
lub
sudo getent shadow | grep -Po '^[^:]*(?=::)'
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
Ich wpis nie /etc/shadow/
będzie zawierał skrótu do hasła. Musisz być jednak zalogowany jako root, aby móc je zobaczyć.