หมายความว่า * และ! ที่เขตข้อมูลที่สองของ / etc / shadow?


20

เท่าที่ฉันรู้ฟิลด์ที่ 2 ของ / etc / shadow เป็นรหัสผ่านที่เข้ารหัสของผู้ใช้ แต่ผู้ใช้บางคนเช่นdaemonผู้ใช้มี*ในฟิลด์ในสภาพแวดล้อมของฉัน (Ubuntu 12.04) rootมี!ในฟิลด์

ฉันถือว่า!หมายความว่า "รหัสผ่านทั้งหมดไม่ถูกต้องคุณไม่สามารถเข้าสู่ระบบด้วยผู้ใช้นี้" แต่ฉันไม่พบเอกสารสำหรับมัน

หมายถึงอะไร*และ!ในแฟ้มเงา?

คำตอบ:


23

'!' และ '!!' หมายถึงโดยพื้นฐานแล้วสิ่งเดียวกัน แต่เครื่องมือต่าง ๆ ใช้อย่างใดอย่างหนึ่งpasswd -lเช่นใช้เครื่องหมายอัศเจรีย์ usermod -Lในทางกลับกันใช้เพียงหนึ่งเท่านั้น

โดยปกติบัญชีที่ใช้ '*' จะไม่มีรหัสผ่าน (เหมือนในถูกปิดใช้งานเสมอสำหรับการเข้าสู่ระบบ) สิ่งนี้แตกต่างจากบัญชีที่ไม่มีการแฮชรหัสผ่านเลยซึ่งในกรณีนี้ไม่จำเป็นต้องใช้รหัสผ่าน (และมักจะไม่ได้รับการแจ้งเตือน) ซึ่งเกือบจะไม่ดีเลย!

หากเป็นแฮชที่ไม่ถูกต้อง (ซึ่งทั้งหมดคือ '*', '!' และ '!!') จะทำการล็อคบัญชีอย่างมีประสิทธิภาพและป้องกันการเข้าสู่ระบบของบัญชีนั้น บ่อยครั้งที่สิ่งนี้ถูกเลื่องลือไปโดยการตั้งค่าเชลล์ของบัญชีเป็นบางอย่างเช่น / bin / false หรือ / sbin / nologin ในไฟล์ / etc / passwd

คุณมักจะพบว่าหากบัญชีของผู้ใช้ถูกล็อคหลังจากก่อนหน้านี้มีการตั้งรหัสผ่านที่ถูกต้องแฮรหัสผ่านนั้นมีเครื่องหมายอัศเจรีย์นำหน้ามันเป็นเช่นนี้เมื่อบัญชีถูกปลดล็อครหัสผ่านจะกลับมาทำงานอีกครั้ง


ขอบคุณสำหรับคำอธิบายโดยละเอียดของคุณ สิ่งนี้มีประโยชน์มาก!
เตารีดและ

2
ไม่มีปัญหา. สิ่งหนึ่งที่ฉันลืมที่จะพูดถึง (แต่ไม่ได้บอกเป็นนัย) คือต้องระวังการล็อคบัญชีด้วยรหัสผ่านและพยายามที่จะปลดล็อคด้วย usodod มันจะลบเฉพาะ '!' ตัวแรกซึ่งจะไม่ทำงาน
Sirex

2
คำตอบนั้นไม่ถูกต้อง 100% จากประสบการณ์ของฉันหากคุณมีเครื่องหมายดอกจัน*ในคอลัมน์นั้นคุณยังสามารถเข้าสู่ระบบได้อย่างสมบูรณ์แบบโดยใช้การตรวจสอบสิทธิ์กุญแจสาธารณะ ในขณะที่!จริงๆบล็อกการเข้าสู่ระบบทั้งหมดสำหรับผู้ใช้ที่
Michael Härtl

2
ที่ขึ้นอยู่กับการตั้งค่าของ "usepam" ในไฟล์ sshd config arlimus.github.io/articles/usepam
Sirex
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.