Comment trouver un utilisateur avec un mot de passe vide sous Linux?
Il s'agit d'une version plus courte et plus précise de la réponse d'AndreKR:
sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1
Il n'a qu'un seul appel à cut
et trouvera les entrées de l'un des formulaires ci-dessous:
foo:!: ...
bar:*: ...
baz:: ...
Si vous voulez seulement vraiment vide:
sudo getent shadow | grep '^[^:]*::' | cut -d: -f1
Si vous avez GNU grep
, vous pouvez éliminer cut
complètement:
sudo getent shadow | grep -Po '^[^:]*(?=:.?:)'
ou
sudo getent shadow | grep -Po '^[^:]*(?=::)'
Leur entrée /etc/shadow/
ne contiendra aucun hachage de mot de passe. Vous devrez cependant être connecté en tant que root pour pouvoir les voir.
Le mot de passe crypté est le deuxième champ dans / etc / shadow.
Si le deuxième champ est vide, le mot de passe est vide:
awk -F":" '($2 == "") {print $1}' /etc/shadow
!
et *
est un mot de passe invalide (l'utilisateur ne peut pas se connecter):
awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow