Freigeben über


Privilegien

Eine Berechtigung ist das Recht eines Kontos, z. B. eines Benutzer- oder Gruppenkontos, um verschiedene systembezogene Vorgänge auf dem lokalen Computer auszuführen, z. B. das Herunterfahren des Systems, das Laden von Gerätetreibern oder das Ändern der Systemzeit. Berechtigungen unterscheiden sich auf zwei Arten von Zugriffsrechten:

  • Berechtigungen steuern den Zugriff auf Systemressourcen und systembezogene Aufgaben, während der Zugriff auf den Zugriff auf sicherungsfähige Objekte.
  • Ein Systemadministrator weist Benutzer- und Gruppenkonten Berechtigungen zu, während das System zugriff auf ein sicherungsfähiges Objekt gewährt oder verweigert, basierend auf den in den ACEs in der DACL des Objekts gewährten Zugriffsrechten.

Jedes System verfügt über eine Kontodatenbank, in der die Berechtigungen von Benutzer- und Gruppenkonten gespeichert werden. Wenn sich ein Benutzer anmeldet, erzeugt das System ein Zugriffstoken, das eine Liste der Berechtigungen des Benutzers enthält, einschließlich der Benutzer- oder Gruppen, zu denen der Benutzer gehört. Beachten Sie, dass die Berechtigungen nur auf den lokalen Computer gelten; Ein Domänenkonto kann unterschiedliche Berechtigungen auf verschiedenen Computern haben.

Wenn der Benutzer versucht, einen privilegierten Vorgang auszuführen, überprüft das System das Zugriffstoken des Benutzers, um festzustellen, ob der Benutzer die erforderlichen Berechtigungen enthält, und wenn ja, überprüft es, ob die Berechtigungen aktiviert sind. Wenn der Benutzer diese Tests fehlschlägt, führt das System den Vorgang nicht aus.

Um die In einem Zugriffstoken gehaltenen Berechtigungen zu ermitteln, rufen Sie die GetTokenInformation-Funktion auf, die auch angibt, welche Berechtigungen aktiviert sind. Die meisten Berechtigungen sind standardmäßig deaktiviert.

Die Windows-API definiert eine Reihe von Zeichenfolgenkonstanten, z. B. SE_ASSIGNPRIMARYTOKEN_NAME, um die verschiedenen Berechtigungen zu identifizieren. Diese Konstanten sind auf allen Systemen identisch und werden in Winnt.h definiert. Eine Tabelle der von Windows definierten Berechtigungen finden Sie unter Berechtigungskonstanten. Die Funktionen, die die Berechtigungen in einem Zugriffstoken abrufen und anpassen, verwenden jedoch den LUID- Typ, um Berechtigungen zu identifizieren. Die LUID- Werte für ein Privileg können sich von einem Computer zum anderen und von einem Start auf einem anderen auf demselben Computer unterscheiden. Um die aktuelle LUID- abzurufen, die einer der Zeichenfolgenkonstanten entspricht, verwenden Sie die funktion LookupPrivilegeValue. Verwenden Sie die funktion LookupPrivilegeName, um eine LUID- in die entsprechende Zeichenfolgenkonstante zu konvertieren.

Das System bietet eine Reihe von Anzeigenamen, die die einzelnen Berechtigungen beschreiben. Diese sind nützlich, wenn Sie eine Beschreibung eines Privilegs für den Benutzer anzeigen müssen. Verwenden Sie die LookupPrivilegeDisplayName--Funktion, um eine Beschreibungszeichenfolge abzurufen, die der Zeichenfolgenkonstante für eine Berechtigung entspricht. Beispielsweise auf Systemen, die US-Englisch verwenden, lautet der Anzeigename für die SE_SYSTEMTIME_NAME Berechtigung "Systemzeit ändern".

Mit der PrivilegeCheck-Funktion können Sie ermitteln, ob ein Zugriffstoken einen bestimmten Satz von Berechtigungen enthält. Dies ist in erster Linie für Serveranwendungen nützlich, die die Identität eines Clients imitieren.

Ein Systemadministrator kann Verwaltungstools wie z. B. Benutzer-Manager verwenden, um Berechtigungen für Benutzer- und Gruppenkonten hinzuzufügen oder zu entfernen. Administratoren können programmgesteuert die funktionen local security authority (LSA) verwenden, um mit Berechtigungen zu arbeiten. Die LsaAddAccountRights und LsaRemoveAccountRights Funktionen hinzufügen oder entfernen Berechtigungen aus einem Konto. Die LsaEnumerateAccountRights Funktion listet die Rechte auf, die von einem angegebenen Konto gehalten werden. Die LsaEnumerateAccountsWithUserRight Funktion listet die Konten auf, die ein bestimmtes Privileg enthalten.

Autorisierungskonstanten

Aktivieren und Deaktivieren von Berechtigungen in C++-