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

13

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

met78
źródło

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 '^[^:]*(?=::)'
Wstrzymano do odwołania.
źródło
8
getent shadow | cut -d: -f1-2 | grep ':$' | cut -d: -f1
AndreKR
źródło
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
ooshro
źródło
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ć.

sysadmin1138
źródło
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

LittleEaster
źródło