Wie finde ich Benutzer mit leerem Passwort in Linux?

13

Wie finde ich Benutzer mit leerem Passwort in Linux?

met78
quelle

Antworten:

15

Dies ist eine kürzere und genauere Version der Antwort von AndreKR:

sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1

Es wird nur einmal angerufen cutund Einträge der folgenden Formulare gefunden:

foo:!: ...
bar:*: ...
baz:: ...

Wenn Sie nur wirklich leer wollen:

sudo getent shadow | grep '^[^:]*::' | cut -d: -f1

Wenn Sie GNU haben grep, können Sie cutvollständig beseitigen :

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

oder

sudo getent shadow | grep -Po '^[^:]*(?=::)'
Bis auf weiteres angehalten.
quelle
8
getent shadow | cut -d: -f1-2 | grep ':$' | cut -d: -f1
AndreKR
quelle
2

Ihr Eintrag in enthält /etc/shadow/keinen Passwort-Hash. Sie müssen jedoch als root angemeldet sein, um sie sehen zu können.

sysadmin1138
quelle
2

Das verschlüsselte Passwort ist das zweite Feld in / etc / shadow.

Wenn das zweite Feld leer ist, ist das Passwort leer:

awk -F":" '($2 == "") {print $1}' /etc/shadow

!und *ist ein ungültiges Passwort (Benutzer kann sich nicht anmelden):

awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow
ooshro
quelle
0

Hat der Benutzer " user " ein leeres Passwort?

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

return 1 bei fehlgeschlagenem Passwort ist nicht leer
return 0 bei Erfolg - ein Passwort ist gesetzt

Hoffe das ist richtig

LittleEaster
quelle