Bagaimana menemukan pengguna dengan kata sandi kosong di Linux?
Ini adalah versi yang lebih pendek dan lebih tepat dari jawaban AndreKR:
sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1
Hanya memiliki satu panggilan ke cut
dan akan menemukan entri dari salah satu formulir di bawah ini:
foo:!: ...
bar:*: ...
baz:: ...
Jika Anda hanya ingin benar-benar kosong:
sudo getent shadow | grep '^[^:]*::' | cut -d: -f1
Jika Anda memiliki GNU grep
, Anda dapat menghilangkan cut
sepenuhnya:
sudo getent shadow | grep -Po '^[^:]*(?=:.?:)'
atau
sudo getent shadow | grep -Po '^[^:]*(?=::)'
Entri mereka /etc/shadow/
tidak memiliki password-hash di dalamnya. Anda harus masuk sebagai root untuk dapat melihatnya.
Kata sandi terenkripsi adalah bidang kedua di / etc / shadow.
Jika bidang kedua kosong, maka kata sandi kosong:
awk -F":" '($2 == "") {print $1}' /etc/shadow
!
dan *
kata sandi salah (pengguna tidak bisa masuk):
awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow