Comment trouver un utilisateur avec un mot de passe vide sous Linux?

13

Comment trouver un utilisateur avec un mot de passe vide sous Linux?

met78
la source

Réponses:

15

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 à cutet 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 cutcomplètement:

sudo getent shadow | grep -Po '^[^:]*(?=:.?:)'

ou

sudo getent shadow | grep -Po '^[^:]*(?=::)'
En pause jusqu'à nouvel ordre.
la source
8
getent shadow | cut -d: -f1-2 | grep ':$' | cut -d: -f1
AndreKR
la source
2

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.

sysadmin1138
la source
2

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
ooshro
la source
0

L'utilisateur " utilisateur " a-t-il un mot de passe vide?

getent shadow | grep 'user:\$' | cut -d':' -f 2 | grep '\w' -c -m 1  

retour 1 en cas d'échec - le mot de passe n'est pas vide
retour 0 en cas de succès - un mot de passe est défini

J'espère que c'est exact

LittleEaster
la source