web-dev-qa-db-fra.com

Compter le nombre d'entrées / etc / passwd sans mot de passe?

Comment compter le nombre d'entrées /etc/password sans mot de passe?

3
PL22

Je pense que pour trouver des entrées sans mot de passe, vous devrez utiliser /etc/shadow:

Sudo grep -Ec '\!|\*' /etc/shadow

Les caractères ! et * indiquent qu'il n'y a pas de mot de passe Unix pour l'utilisateur, par exemple:

root:!:17092:0:99999:7:::
colord:*:17086:0:99999:7:::

Les entrées dans /etc/shadow correspondent à celles dans /etc/passwd

Au lieu d’un nombre, vous pouvez obtenir une liste non exhaustive des noms d’utilisateur:

Sudo grep -E '\!|\*' /etc/shadow | grep -o '^[^:]*'

Vous pouvez utiliser -v pour inverser la correspondance et compter ou lister les utilisateurs avec mots de passe bien sûr:

Sudo grep -vE '\!|\*' /etc/shadow | grep -o '^[^:]*'

Remarques:

  • -E utilise ERE pour pouvoir utiliser | en alternance
  • -c retourne le nombre de lignes, pas les lignes elles-mêmes
  • -o n'imprime que la partie correspondante
  • '^[^:]*' du début de la ligne au premier :
3
Zanna
echo $(($(cat /etc/passwd | egrep "^*:x" | wc | awk '{print $1}')-$(cat /etc/passwd | wc | awk '{print $1}')))

Cela ne compte que les entrées qui n'ont pas de mot de passe.

0
Florian Traun