ค้นหาผู้ใช้ด้วยรหัสผ่านว่างใน Linux ได้อย่างไร


13

ค้นหาผู้ใช้ด้วยรหัสผ่านว่างใน Linux ได้อย่างไร

คำตอบ:


15

นี่เป็นคำตอบของ AndreKR ที่สั้นลงและแม่นยำยิ่งขึ้น:

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

มีการโทรเพียงครั้งเดียวเท่านั้นcutและจะพบรายการของแบบฟอร์มด้านล่าง:

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

หากคุณต้องการที่ว่างเปล่าอย่างแท้จริงเท่านั้น:

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

หากคุณมี GNU grepคุณสามารถกำจัดได้cutอย่างสมบูรณ์:

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

หรือ

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


3

รหัสผ่านที่เข้ารหัสเป็นฟิลด์ที่สองใน / etc / shadow

หากฟิลด์ที่สองว่างเปล่ารหัสผ่านจะว่างเปล่า:

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

!และ*เป็นรหัสผ่านที่ไม่ถูกต้อง (ผู้ใช้ไม่สามารถเข้าสู่ระบบได้):

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

2

การเข้าใช้/etc/shadow/จะไม่มีการแฮรหัสผ่าน คุณจะต้องเข้าสู่ระบบในฐานะ root เพื่อให้สามารถดูได้


0

มีผู้ใช้ " ผู้ใช้ " รหัสผ่านที่ว่างเปล่า?

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

ย้อนกลับ 1 เมื่อล้มเหลว - รหัสผ่านไม่ว่างเปล่า
ส่งคืน 0 เมื่อสำเร็จ - ตั้งรหัสผ่านแล้ว

หวังว่านี่ถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.