Eigentlich gibt es auf einem Unix-System nur zwei User, root und den Rest. Die User werden durch ID-Nummern unterschieden, denen Namen zugeordnet werden. Letztendlich erfolgt die ganze User- und Gruppenverwaltung über diese ID-Nummern.
Wird ein User z.B. mit dem kommando useradd angelegt, dann wird ihm eine eindeutige User-Kennnummer, die User-ID zugeordnet.
Diese Zuordnung wird in der zentralen Datei /etc/passwd abgelegt.
Der Name der Datei ist historisch bedingt, denn das Passwort ist dort nicht mehr abgelegt sondern wird als verschlüsselte Prüfsumme in /etc/shadow abgelegt.
Früher befand sich neben dem Usernamen der User-ID und einigen anderen andrenen Informationen auch die mit Salt (Hostschlüssel) verknüpfte md5-Summe des Passwortes in dieser Datei.
Da alle User diese Datei lesen können müssen, wurde die Passwort-Prüfsumme in die nur für root lesbare Datei /etc/shadow (Shadow-Passwort-System) ausgelagert, als der md5-Algorithmus nicht mehr sicher war und geknackt werden konnte.
In der Datei sind alle Systemuser aufgelistet.
Pro User ist eine Zeile reserviert.
Der System-Superuser besitzt immer die User-ID 0.
Diese darf auch nicht verändert werden, denn die ID 0 ist im Kernel fest codiert.
Alle anderen User erhalten ganzzahlige ID-Nummern größer Null.
Eine Typische Zeile in der /etc/passwd sieht so aus
frank:x:1000:1000:Ich:/home/frank:/bin/bash
Die Zeile besteht aus 7 Feldern, die durch einen Doppelpunkt voneinander getrennt sind.
Diese sieben Felder haben folgende Bdeutung:
Jeder User gehört mindestens einer Gruppe an.
Diese wird als Initialgruppe in der Datei /etc/passwd hinterlegt.
Jeder User kann aber Mitglied in weiteren Gruppen werden.
Die Gruppen werden durch Einträge in die Datei /etc/group erzeugt.
Ähnlich wie in der Datei /etc/passwd findet man in der Datei Zeilen mit durch Doppelpunkten getrennten Einträgen.
Ein Ausschnitt der datei sieht z.B. so aus:
netdev:x:86: pop:x:90:pop scanner:x:93:frank nobody:x:98:nobody nogroup:x:99: users:x:100:frank,apache,andre console:x:101:Jede Zeile definiert eine Gruppe und besteht aus 4 Feldern, die durch Doppelpunkte : voneinander getrennt sind. Die einzelnen Felder haben folgende Bedeutung:
Informationen zu ID-Nummern und Gruppenzugehörigkeiten liefert das Kommando id Werden veränderungen an den Gruppeneinstellungen vorgenommen, dann sind diese für den betreffenden User oft erst mit dem nächsten Login gültig.