Contar o número de entradas / etc / passwd que não possuem senha?

4

Como posso contar o número de entradas de /etc/password sem senha?

    
por PL22 26.11.2016 / 00:08

2 respostas

3

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 :
por Zanna 26.11.2016 / 00:36
0
echo $(($(cat /etc/passwd | egrep "^*:x" | wc | awk '{print }')-$(cat /etc/passwd | wc | awk '{print }')))

Isso apenas conta as entradas que não têm senha alguma

    
por Florian Traun 26.11.2016 / 00:27