Ich versuche zu verstehen, wie Benutzerberechtigungen unter Linux funktionieren. Der Kernel bootet und startet init
als Root, oder? Init führt dann Startskripte aus und führt getty
( agetty
) erneut als root aus. Agetty liest nur den Benutzernamen und läuft login
, glaube ich, immer noch als root. Noch nichts Interessantes. Aber was macht der Login ? Ich konnte nichts Besseres finden als "es versucht sich einzuloggen". Angenommen, die Anmeldung stellt fest, dass das Kennwort übereinstimmt (und wir versuchen, uns wie gewohnt anzumelden). Wie ändert sich die Benutzer-ID? Ich dachte, dass es dafür einen Systemaufruf geben sollte, aber ich konnte ihn nicht finden (vielleicht bin ich nur blind?)
Auch über su
. su
Wenn das Bit 'setuid' gesetzt ist, wird es beim Ausführen immer als root ausgeführt. Wenn wir ihm jedoch mitteilen, dass er sich wie gewohnt anmelden soll, muss die Benutzer-ID erneut geändert werden. Verstehe ich richtig, dass die gleiche "Magie" in su
und login
wenn sie den Benutzer wechseln müssen, passiert ? Wenn ja, warum zwei verschiedene Programme? Gibt es zusätzliche ernsthafte Geschäfte, wenn Sie sich anmelden?
quelle