Antworten:
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 '^[^:]*(?=::)'
Ihr Eintrag in enthält /etc/shadow/keinen Passwort-Hash. Sie müssen jedoch als root angemeldet sein, um sie sehen zu können.
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
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