Freigeben über


Verwalten von Berechtigungen in einem Dateisystem

Berechtigungen sind ein Mechanismus, den das Betriebssystem zum Steuern bestimmter Vorgänge verwendet. Jeder Berechtigung ist bestimmte Vorgänge zugeordnet, die der Aufrufer des Vorgangs ausführen kann, wenn die folgenden beiden Bedingungen erfüllt sind:

  • Die Berechtigung muss vom Aufrufer gehalten werden.
  • Die Berechtigung muss ebenfalls aktiviert sein.

Das Prinzip dieser Anforderungen wird als geringste Berechtigung bezeichnet. Die geringsten Berechtigungen erfordern, dass Berechtigungen aktiviert werden, bevor sie verwendet werden, anstatt angenommen zu werden. Diese Anforderung minimiert die Wahrscheinlichung, dass ein Benutzer versehentlich einen Vorgang ausführt, den er nicht beabsichtigt hat. Beispielsweise würde SeRestorePrivilege normalerweise zulassen, dass der Aufrufer die üblichen Überprüfungen auf Schreibzugriff auf eine Datei umgehen kann. Ein Administrator möchte z. B. beim Kopieren einer Datei möglicherweise nicht die normalen Sicherheitsüberprüfungen außer Kraft setzen; Dies kann jedoch beim Wiederherstellen derselben Datei mithilfe eines Sicherungs-/Wiederherstellungsprogramms möglich sein.

Für Dateisysteme gibt es viele Berechtigungen, die häufig verwendet werden, um das normale Verhalten (insbesondere Sicherheitsprüfungen) für das System zu ändern. Diese Berechtigungen sind:

  • SeBackupPrivilege ermöglicht das Abrufen von Dateiinhalten, auch wenn der Sicherheitsdeskriptor für die Datei diesen Zugriff möglicherweise nicht gewährt. Ein Aufrufer mit aktiviertem SeBackupPrivilege räumt die Notwendigkeit einer ACL-basierten Sicherheitsüberprüfung auf.

  • SeRestorePrivilege ermöglicht Dateiinhaltsänderungen, auch wenn der Sicherheitsdeskriptor für die Datei diesen Zugriff möglicherweise nicht gewährt. Diese Funktion kann auch verwendet werden, um den Besitzer und den Schutz zu ändern.

  • SeChangeNotifyPrivilege ermöglicht das Durchlaufen nach rechts. Diese Berechtigung ist eine wichtige Optimierung in Windows, da dadurch die Kosten für die Durchführung einer Sicherheitsüberprüfung für jedes einzelne Verzeichnis in einem Pfad entfernt werden.

  • SeManageVolumePrivilege ermöglicht bestimmte Verwaltungsvorgänge auf Volumeebene, z. B. Sperrvolume, Defragmentierung, Volume dismount und Festlegen gültiger Datenlänge unter Windows XP und höher. Ein Dateisystemtreiber erzwingt dieses spezielle Privileg in erster Linie basierend auf FSCTL-Vorgängen. In diesem Fall trifft das Dateisystem eine Richtlinienentscheidung, um dieses Privileg durchzusetzen. Die Bestimmung, ob diese Berechtigung vom Aufrufer gehalten wird, wird vom Sicherheitsreferenzmonitor als Teil der normalen Berechtigungsprüfung vorgenommen.

Obwohl es zahlreiche andere Berechtigungen gibt, sind sie normalerweise für Dateisysteme undurchsichtig, und nur der Security Reference Monitor (SRM) interpretiert sie.

Die wichtigsten Windows-Routinen zum Verwalten von Berechtigungen innerhalb eines Dateisystems sind:

  • SePrivilegeCheck führt eine Überprüfung auf einen bestimmten Satz erforderlicher Berechtigungen durch.

  • SeSinglePrivilegeCheck führt eine Überprüfung auf ein einzelnes bestimmtes Privileg aus. Es handelt sich um eine optimierte Version von SePrivilegeCheck.

  • SeAccessCheck führt eine normale Zugriffsüberprüfung für ein Objekt durch (normalerweise ein Dateiobjekt für ein Dateisystem).

  • SeFreePrivileges gibt den Von einem vorherigen Aufruf von SeAccessCheck zurückgegebenen Berechtigungsblock frei.

  • SeAppendPrivileges fügt einer ACCESS_STATE Struktur aktivierte Berechtigungen hinzu. In der Regel verwendet ein Dateisystem die ACCESS_STATE, die während IRP_MJ_CREATE Verarbeitung an sie übergeben wurde.