man shadow is erg summier.. Maar
man master.passwd op BSD geeft wat meer info..
De reden dat programma's die op een 'gewoon' user account draaien gebruik maken van /etc/passwd is simpel:
The master.passwd file is readable only by root, and consists of newline separated records, one per user, containing ten colon (``:'') separated fields. These fields are as follows
Dit is gedaan om het offline bruteforcen van de password hashes door 'gewone' gebruikers tegen te gaan.
En:
The passwd file is generated from the master.passwd file by pwd_mkdb(8), has the class, change, and expire fields removed, and the password field replaced by a ``*''.
Om het verhaal wat completer te maken. Vroeger bestond er niet zoiets als shadow password files. De hashes stonden in /etc/passwd. Daarom vragen 'oude' exploits deze file op.
Later is men in gaan zien dat dit toch niet zo heel slim was en hebben ze dit shadow verhaal geimplementeerd. Maar omdat er dus ook programma's zijn die bijv. uid -> username conversies moeten doen met de rechten van een 'gewone' gebruiker is de huidige constructie bedacht. /etc/passwd is er dus wel degelijk als een soort 'backward compatibiliteit'. De andere optie was het SUID root maken van die programma's maar dat is, uiteraard, niet zo'n slimme zet.