Bagaimana menemukan pengguna dengan kata sandi kosong di Linux?

13

Bagaimana menemukan pengguna dengan kata sandi kosong di Linux?

bertemu78
sumber

Jawaban:

15

Ini adalah versi yang lebih pendek dan lebih tepat dari jawaban AndreKR:

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

Hanya memiliki satu panggilan ke cutdan 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 cutsepenuhnya:

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

atau

sudo getent shadow | grep -Po '^[^:]*(?=::)'
Dijeda sampai pemberitahuan lebih lanjut.
sumber
8
getent shadow | cut -d: -f1-2 | grep ':$' | cut -d: -f1
AndreKR
sumber
2

Entri mereka /etc/shadow/tidak memiliki password-hash di dalamnya. Anda harus masuk sebagai root untuk dapat melihatnya.

sysadmin1138
sumber
2

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
ooshro
sumber
0

Apakah pengguna " pengguna " menggunakan kata sandi kosong?

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

return 1 on fail - password tidak kosong
mengembalikan 0 pada berhasil - kata sandi ditetapkan

Semoga ini akurat

LittleEaster
sumber