ทำไม / etc / passwd เปิดให้สาธารณะอ่าน?


12

มีเหตุผลใดที่ / etc / passwd ควรอ่านได้ทั่วโลก? มันไม่เหมือนแฮชของรหัสผ่านที่ไม่ควรเปิดเผยฉันแค่อยากรู้ว่าทำไม


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

การขยาย "~" เป็นฟังก์ชันของตัวแปร $ HOME - ตั้งค่า $ HOME เป็น / var / tmp และหากคุณทำ "cd ~" - มันจะเปลี่ยนเป็น / var / tmp
Saurabh Hirani

คำตอบ:


14

/etc/passwdบางครั้งเรียกว่าฐานข้อมูลผู้ใช้ นั่นควรให้เบาะแสแก่เราว่าทำไมทุกคนต้องสามารถอ่านได้ ยูทิลิตี้ใด ๆ ที่ตรวจสอบเมตาดาต้าของไฟล์จะต้องสามารถอ่าน/etc/passwd(และ/etc/group) เพื่อที่จะสามารถแก้ไข ID ตัวเลขที่ใช้โดยเคอร์เนลและระบบย่อยของมันให้เป็นชื่อที่เป็นมิตรกับมนุษย์ที่เราพึ่งพา เครื่องมือที่จำเป็นในการหาไดเรกทอรีที่บ้านของคุณ (ตัวแทนการจัดส่งจดหมายและอื่น ๆ ) ดูข้อมูลที่อยู่ใน/etc/passwdและinetminiservers เหมือนดูรายละเอียดในfingerd/etc/passwd

ดังที่ได้กล่าวไว้ที่อื่นแล้วไม่มีข้อมูลที่ละเอียดอ่อนในไฟล์เนื่องจากระบบที่ทันสมัยจะใส่รหัสผ่านแฮชในไฟล์รหัสผ่านเงาซึ่งสามารถอ่านได้โดยรูทเท่านั้น


6
ถ้าอย่างนั้นด้วยเหตุผลทางประวัติศาสตร์มันถูกเรียกpasswdเมื่อจริง ๆ แล้วชื่อนี้ไม่ได้สะท้อนถึงสิ่งที่อยู่ในไฟล์?
Emanuel Berg

8
อืมฉันก็คิดแบบนั้น. ในรุ่นแรก ๆ ของ UNIX รหัสผ่านจะถูกเก็บไว้ใน/etc/passwd(ไม่เข้ารหัสในตอนแรก!) เมื่อแฮ็ชรหัสผ่านเวลาถูกย้ายออกไปยังไฟล์เงายูทิลิตี้จำนวนมากมีอยู่แล้วที่อาศัยข้อมูลอื่น ๆ ใน/etc/passwdดังนั้นชื่อติดอยู่
D_Bye

7

/etc/passwdไม่มีแฮชของรหัสผ่าน (ดังนั้นจึงไม่ใช่ปัญหาใหญ่) /etc/shadowมีแฮชรหัสผ่านและสามารถอ่านได้โดย root (& กลุ่มเงา)


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