Eu acho que para encontrar entradas sem senha, você terá que usar /etc/shadow
:
sudo grep -Ec '\!|\*' /etc/shadow
Os caracteres !
e *
indicam que não há senha Unix para o usuário, por exemplo:
root:!:17092:0:99999:7:::
colord:*:17086:0:99999:7:::
As entradas em /etc/shadow
correspondem às entradas em /etc/passwd
Em vez de uma contagem, você pode obter uma lista limpa de apenas os nomes de usuários:
sudo grep -E '\!|\*' /etc/shadow | grep -o '^[^:]*'
Você pode usar -v
para inverter a correspondência e contar ou listar usuários com senhas, é claro:
sudo grep -vE '\!|\*' /etc/shadow | grep -o '^[^:]*'
Notas:
-
-E
usa ERE, então podemos usar|
para alternação -
-c
retorna uma contagem das linhas, não das próprias linhas -
-o
apenas imprime a parte correspondente -
'^[^:]*'
desde o início da linha até o primeiro: