ใน / etc / group ความหมายของฟิลด์ที่สองคืออะไร?


18

/etc/groupไฟล์ตัวอย่างมีรายการดังต่อไปนี้:

root:*:0:
adm:!:4:logcheck
antoine:x:1000:

man pages ที่ฉันอ่าน (Debian & OSX) บอกว่าฟิลด์ที่สองคือการจัดเก็บรหัสผ่านกลุ่ม เนื่องจากมีการใช้งานไม่บ่อยนักเครื่องหมายดอกจัน*หรือxมักจะวางไว้ในนั้นแทนที่จะปล่อยให้ว่างเปล่า

shadowหน้าคนยังบอกว่าฟิลด์ที่สองนี้ควรเก็บผลมาจากการที่cryptฟังก์ชั่น และหากมีการจัดเก็บผลลัพธ์ที่ไม่ถูกต้อง (เช่น*หรือ!) ก็หมายความว่าไม่สามารถใช้รหัสผ่านเป็นวิธีการตรวจสอบสิทธิ์ได้

ที่ถือเป็นจริงสำหรับgroupไฟล์เช่นกัน? ทำไมฉันถึงลงเอยด้วยตัวอักษรต่างกัน 3 ตัวในgroupไฟล์ของฉันที่มีความหมายเหมือนกัน? ฉันสามารถเปลี่ยนทุกอย่างให้ปลอดภัยได้*หรือไม่


คุณจะทำอะไรให้สำเร็จโดยเปลี่ยนพวกเขาทั้งหมดเป็น*?
จอร์แดน

ฉันเห็น!การใช้งานสำหรับกลุ่มเดียวบนเซิร์ฟเวอร์เดียวจาก 10+ ที่ฉันจัดการอยู่ในขณะนี้ สำหรับความเรียบง่ายของสคริปต์ตรวจสอบบางอย่างการมีอักขระตัวเดียวกันเสมอจะทำให้สิ่งต่าง ๆ ชัดเจนขึ้น แน่นอนว่าถ้ามันมีความหมายเหมือนกันแน่นอน
Tonin

คำตอบ:


28

คุณกำลังคิดที่!, *หรือxมีความหมายพิเศษที่นี่และดังนั้นจึงเป็นกังวลว่าอาจจะมีความแตกต่างบางอย่างในหมู่พวกเขา

ความจริงก็คือว่าตัวละครเหล่านี้ได้รับการคัดเลือกเพียงเพราะพวกเขาโดดเด่นอย่างน้อยกับดวงตาตะวันตก อักขระเหล่านี้มีความหมายถึงค่าที่หายไปหรือกรณียกเว้นหรือคำเตือน คุณสามารถใส่boogaboogaที่นี่และมีความว่าผลเช่นเดียวกัน

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

แม้ว่าจะไม่มีความแตกต่างระหว่างตัวละครเหล่านี้จากมุมมองของคอร์ที่ใช้ระบบปฏิบัติการหลัก

  • เมื่อpwconv(8)โปรแกรมLinux เห็นxก็หมายความว่า "ฉันได้ย้ายแฮชรหัสผ่านสาธารณะนี้ไปยังไฟล์รหัสผ่านเงาแล้ว"

    นั่นไม่ใช่กรณีสำคัญในทางปฏิบัติเพราะวันที่เปลี่ยนเป็น (หรือสวรรค์ช่วยคุณจาก ) รหัสผ่านเงาอยู่ข้างหลังเราตอนนี้

  • หากคุณใช้usermod -Lหรือpasswd -lเพื่อล็อคผู้ใช้!มีความหมายพิเศษ/etc/shadowเนื่องจากเป็นข้อตกลงสำหรับ "หยุดแฮชนี้ดังนั้นจึงไม่ตรงกับอีกต่อไป"

    การเพิ่มตัวละครอื่น ๆ ลงในแฮชที่เก็บไว้ก็จะทำให้มันแตกเช่นกัน ละเมิดการประชุมนี้เป็นเพียงการป้องกันไม่ให้usermod -Uหรือpasswd -uจากการปลดล็อคการเข้าสู่ระบบของผู้ใช้ เช่นเดียวกับเมื่อคุณล็อคด้วยมือด้วยการเพิ่มตัวละครปลอมคุณสามารถปลดล็อคได้ด้วยมือโดยการลบมัน

    อย่างไรก็ตามทั้งหมดนี้เป็นเรื่องไม่สำคัญเมื่อเทียบกับคำถามนี้ ไม่มีgroupmod -Lหรือgpasswd -lจึงไม่มีการประชุมใน!/etc/group

    เรื่องไม่สำคัญอื่น ๆ : ถ้าคุณจะไปกับบัญชีผู้ใช้ล็อคด้วยมือคุณควรอยู่ห่างจาก[A-Za-z0-9/\]ที่ตั้งไว้ตั้งแต่ผู้ที่มีตัวอักษรตามกฎหมายสำหรับกัญชา นั่นเป็นเหตุผลหนึ่งที่ทำให้usermodการใช้งานที่นี่แทน!x

ฉันไม่เห็นอะไรผิดปกติกับการทำให้/etc/groupฟิลด์รหัสผ่านทั้งหมดของคุณเป็นปกติถ้านั่นทำให้คุณรู้สึกดีขึ้น เมื่อทำเช่นนี้คุณกำลังบอกว่าคุณแฮ็คไฟล์เหล่านี้ด้วยมือดังนั้นคุณอาจไม่ใช่เครื่องมือที่ใช้ในการแยกแยะความแตกต่าง ไม่ว่าการเปลี่ยนแปลงจะไม่ส่งผลกระทบต่อการทำงานของระบบในแต่ละวัน


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

1
สำหรับการเขียนสคริปต์คุณควรจะโทรหาgetpwent(3)และหาเพื่อน Perl มี wrappers สำหรับสิ่งเหล่านี้ในไลบรารีมาตรฐานเช่นเดียวกับภาษาอื่น ๆ ที่ใช้ระบบปฏิบัติการ Unix sysadmin ที่เน้นการเขียนสคริปต์ หากคุณใช้ภาษาที่ไม่มีแผ่นปิดเช่นนี้จะเป็นข้อแก้ตัวที่ดีในการแลกเปลี่ยน :)
Warren Young

หากคุณยังอ่านสิ่งที่อายุเกือบหกขวบ ... ขอบคุณสำหรับคำตอบฉันเห็นเหตุผลทางประวัติศาสตร์บางอย่างที่ผู้คนใช้สิ่งต่าง ๆ เช่นxและ*เพื่อทำเครื่องหมายฟิลด์รหัสผ่าน "ไม่ได้ใช้" เพียงแค่อยากรู้ว่า ... หน้าคนบอกว่าเขตข้อมูลอาจจะถูกทิ้งว่างเปล่า (สิ่งที่อยู่ในเขตข้อมูลฐานข้อมูลอาจจะเรียกว่า NULL - โดยเฉพาะใน Oracle ซึ่งกำหนด NULL และสตริงว่างเปล่าจะเหมือนกัน) ดังนั้นกลับไปที่ / etc / group: ทำไมต้องใช้xหรือ!หรือ*แทนที่จะปล่อยให้ฟิลด์ว่างเปล่า สองโคลอนที่ต่อเนื่องกันนั้นโดดเด่นพอ ๆ กับตัวละครเหล่านี้ ไม่สำคัญ - แค่อยากรู้อยากเห็น
mathguy

1
@mathguy: ฟิลด์รหัสผ่านที่ว่างเปล่าหมายถึง "ไม่มีรหัสผ่าน" ไม่ใช่สิ่งเดียวกับฟิลด์รหัสผ่านที่มีอักขระที่ไม่สามารถจับคู่รหัสผ่านจริงได้ เนื่องจากส่วนใหญ่ระบบ Unix ไม่ได้ใช้รหัสผ่านกลุ่มมันเป็นความแตกต่างโดยไม่ต้องมีความแตกต่างกันมี แต่คุณไม่ต้องการที่จะพัฒนานิสัยที่จะรับคุณเป็นปัญหาเช่นเดียวกับระบบลินุกซ์มากที่สุด /etc/shadowนอกจากนี้ฉันปฏิเสธความคิดที่ว่าลำไส้ใหญ่สองเท่าก็ชัดเจน ด่วนวิธีการหลายสาขาที่ว่างเปล่าอยู่ที่นี่: ::::::? ตอนนี้หลายวิธี: :x:*:!:x:*:? โคลอนจำนวนเดียวกัน แต่คำตอบที่ต่างกันฉันเชื่อใจ
Warren Young
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.