ค้นหาผู้ใช้ด้วยรหัสผ่านว่างใน Linux ได้อย่างไร
ค้นหาผู้ใช้ด้วยรหัสผ่านว่างใน Linux ได้อย่างไร
คำตอบ:
นี่เป็นคำตอบของ 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 '^[^:]*(?=::)'
getent shadow | cut -d: -f1-2 | grep ':$' | cut -d: -f1
รหัสผ่านที่เข้ารหัสเป็นฟิลด์ที่สองใน / etc / shadow
หากฟิลด์ที่สองว่างเปล่ารหัสผ่านจะว่างเปล่า:
awk -F":" '($2 == "") {print $1}' /etc/shadow
!
และ*
เป็นรหัสผ่านที่ไม่ถูกต้อง (ผู้ใช้ไม่สามารถเข้าสู่ระบบได้):
awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow
การเข้าใช้/etc/shadow/
จะไม่มีการแฮรหัสผ่าน คุณจะต้องเข้าสู่ระบบในฐานะ root เพื่อให้สามารถดูได้
มีผู้ใช้ " ผู้ใช้ " รหัสผ่านที่ว่างเปล่า?
getent shadow | grep 'user:\$' | cut -d':' -f 2 | grep '\w' -c -m 1
ย้อนกลับ 1 เมื่อล้มเหลว - รหัสผ่านไม่ว่างเปล่า
ส่งคืน 0 เมื่อสำเร็จ - ตั้งรหัสผ่านแล้ว
หวังว่านี่ถูกต้อง