In Windows der Benutzer System
wird mit dem Gruppensymbol angezeigt:
.
(Die Verwendung der internen Win32-API LookupAccountSid zeigt auch, dass es sich anscheinend um eine Gruppe SidTypeGroup handelt .)
Auf der anderen Seite können Prozesse system context
in a user context
. Auch Microsoft-Dokumente beschreiben es als "Systembenutzer" oder "Systemkonto" und nicht als "Systemgruppe".
Handelt es sich um einen Benutzer, der für ältere Zwecke als Gruppe angezeigt wird?
(Oder hätte sich Werner Heisenberg dafür interessiert?)
Hinweis: Was ist der Benutzer von NT AUTHORITY \ SYSTEM? ist ähnlich, beantwortet aber nicht die Frage, warum es als Gruppe angezeigt wird und sich wie ein Benutzer verhält.
windows
user-accounts
local-groups
Sumpf-Wackeln
quelle
quelle
Antworten:
Erstens enthält das Zugriffstoken viel mehr als die Sicherheitskennung (SID) . Man muss nur ein Programm "Als Administrator ausführen", um im Task-Manager zu sehen, dass sein Benutzer sich selbst und nicht der Administrator ist, und dieses Wunder wird nur durch die Änderung des Zugriffstokens erreicht, nicht durch das Ersetzen der SID.
Zweitens sind NT-AUTHORITY und SYSTEM trotz verschiedener anderer Quellen (auch innerhalb von Microsoft) weder Konten noch Gruppen. Eine SID hat normalerweise einen Namen, der bei Bedarf angezeigt wird. Ein Benutzerkonto trägt seine SID als Haupt-SID zum Zugriffstoken bei, wodurch auch der von verschiedenen Dienstprogrammen angezeigte Name bestimmt wird. Das Zugriffstoken kann jedoch zusätzliche SIDs enthalten, beispielsweise für alle Gruppen, denen dieses Benutzerkonto angehört. Bei der Überprüfung der Berechtigungen sucht Windows im Zugriffstoken nach einer SID, die über diese Berechtigung verfügt.
Einige bekannte Windows-SIDs haben Namen, die von Windows gemeldet werden, obwohl sie eigentlich keinem Konto angehören.
Eine Sicherheitskennung wird von Wikipedia definiert als:
Die SID muss nicht einmal ein Benutzerkonto oder eine Gruppe definieren. Es definiert nur eine Reihe von Berechtigungen. Der obige Wikipedia-Artikel fügt hinzu:
Die SID von
NT-AUTHORITY\SYSTEM
kann anderen Konten hinzugefügt werden. Dies gilt zum Beispiel für das LocalSystem-Konto :Man kann bereits im obigen Text die Verwirrung sehen, die selbst in der Microsoft-Dokumentation herrscht, wenn es um System-SIDs geht, bei denen es sich nicht genau um Konten oder Gruppen handelt, sondern nur um eine Reihe von Berechtigungen. Diese Verwirrung erstreckt sich auch auf andere Dienstprogramme und Artikel. Daher sollten alle zurückgegebenen Informationen sorgfältig geprüft werden.
In dem Microsoft-Artikel Bekannte Sicherheitskennungen in Windows-Betriebssystemen werden alle System-SIDs aufgeführt, von denen einige im Folgenden aufgeführt sind:
Schlussfolgerung : NT-AUTHORITY \ SYSTEM ist der Name einer Sicherheits-ID, die weder eine Gruppe noch ein Konto ist. Es wird im Task-Manager als SYSTEM angezeigt, wenn es die Haupt-SID eines Programms ist. Das meiste, was ich es nennen würde, ist "ein Pseudo-Account".
quelle
- which are just a set of permissions
: bezieht sich das was auf die System IDs oder auf die Accounts oder Gruppen ?IMHO ist Ihre Beobachtung richtig.
NT-AUTHORITY\SYSTEM
ist eine Gruppe, so dass Sie es als das System beziehen könnte Gruppe . Diese Gruppe existiert seit Windows NT 4 mindestens und war dort bereits eine Gruppe:Es gibt auch ein Konto namens LocalSystem, das
so könnte man das System dies nennen Benutzer , die Mitglied der Gruppe SYSTEM ist.
SysInternals PsGetSid unterstützt die Gruppentheorie für SYSTEM:
Zum Beginn eines Prozesses als Gruppe:
Um die Sicherheit zu verwalten, erhält ein Prozess ein Zugriffstoken . Das Zugriffstoken enthält nur SIDs. Ich bin nicht sicher, ob überprüft wird, ob die SID des Benutzers wirklich ein Benutzer oder eine Gruppe ist. Im Prinzip spielt es keine Rolle: Die SID definiert, auf was zugegriffen werden kann. Vielleicht kann der CodeProject-Artikel bei der Implementierung helfen
quelle