Como encontrar usuário com senha vazia no Linux?
13
Esta é uma versão mais curta e mais precisa da resposta de AndreKR:
sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1
Ele tem apenas uma chamada cut
e encontrará entradas de qualquer um dos formulários abaixo:
foo:!: ...
bar:*: ...
baz:: ...
Se você quer apenas verdadeiramente vazio:
sudo getent shadow | grep '^[^:]*::' | cut -d: -f1
Se você possui o GNU grep
, pode eliminar cut
completamente:
sudo getent shadow | grep -Po '^[^:]*(?=:.?:)'
ou
sudo getent shadow | grep -Po '^[^:]*(?=::)'
A entrada deles /etc/shadow/
não terá hash de senha. Você precisará estar logado como root para poder vê-los.
Senha criptografada é o segundo campo em / etc / shadow.
Se o segundo campo estiver vazio, a senha estará vazia:
awk -F":" '($2 == "") {print $1}' /etc/shadow
!
e *
é uma senha inválida (o usuário não pode fazer login):
awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow