Freigeben über


FileSystemRights Enumeration

Definition

Definiert die Beim Erstellen von Zugriffs- und Überwachungsregeln zu verwendenden Zugriffsrechte.

Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.

public enum class FileSystemRights
[System.Flags]
public enum FileSystemRights
[System.Flags]
[System.Security.SecurityCritical]
public enum FileSystemRights
[<System.Flags>]
type FileSystemRights = 
[<System.Flags>]
[<System.Security.SecurityCritical>]
type FileSystemRights = 
Public Enum FileSystemRights
Vererbung
FileSystemRights
Attribute

Felder

AppendData 4

Gibt das Recht an, Daten an das Ende einer Datei anzufügen.

ChangePermissions 262144

Gibt das Recht auf Änderung der Sicherheits- und Überwachungsregeln an, die einer Datei oder einem Ordner zugeordnet sind.

CreateDirectories 4

Gibt das Recht zum Erstellen eines Ordners an. Für dieses Recht ist der Synchronize Wert erforderlich.

CreateFiles 2

Gibt das Recht zum Erstellen einer Datei an. Für dieses Recht ist der Synchronize Wert erforderlich.

Delete 65536

Gibt das Recht zum Löschen eines Ordners oder einer Datei an.

DeleteSubdirectoriesAndFiles 64

Gibt das Recht zum Löschen eines Ordners und aller Dateien in diesem Ordner an.

ExecuteFile 32

Gibt das Recht zum Ausführen einer Anwendungsdatei an.

FullControl 2032127

Gibt das Recht an, die vollständige Kontrolle über einen Ordner oder eine Datei auszuüben und Zugriffssteuerungs- und Überwachungsregeln zu ändern. Dieser Wert stellt das Recht dar, alles mit einer Datei zu tun und ist die Kombination aller Rechte in dieser Enumeration.

ListDirectory 1

Gibt das Recht zum Lesen des Inhalts eines Verzeichnisses an.

Modify 197055

Gibt das Recht auf Lese-, Schreib-, Listenordnerinhalte, Löschen von Ordnern und Dateien und Ausführen von Anwendungsdateien an. Dieses Recht umfasst das ReadAndExecute Recht, das Write Recht und das Delete Recht.

Read 131209

Gibt das Recht zum Öffnen und Kopieren von Ordnern oder Dateien als schreibgeschützt an. Dieses Recht umfasst das ReadData Recht, ReadExtendedAttributes Recht, ReadAttributes Recht und ReadPermissions Rechts.

ReadAndExecute 131241

Gibt das Recht zum Öffnen und Kopieren von Ordnern oder Dateien als schreibgeschützt an und zum Ausführen von Anwendungsdateien. Dieses Recht umfasst das Read Recht und das ExecuteFile Recht.

ReadAttributes 128

Gibt das Recht zum Öffnen und Kopieren von Dateisystemattributen aus einem Ordner oder einer Datei an. Dieser Wert gibt z. B. das Recht zum Anzeigen des Erstellungs- oder Änderungsdatums der Datei an. Dies schließt nicht das Recht auf Lesen von Daten, erweiterten Dateisystemattributen oder Zugriffs- und Überwachungsregeln ein.

ReadData 1

Gibt das Recht zum Öffnen und Kopieren einer Datei oder eines Ordners an. Dies schließt nicht das Recht ein, Dateisystemattribute, erweiterte Dateisystemattribute oder Zugriffs- und Überwachungsregeln zu lesen.

ReadExtendedAttributes 8

Gibt das Recht zum Öffnen und Kopieren erweiterter Dateisystemattribute aus einem Ordner oder einer Datei an. Dieser Wert gibt z. B. das Recht zum Anzeigen von Autoren- und Inhaltsinformationen an. Dazu gehört nicht das Recht, Daten, Dateisystemattribute oder Zugriffs- und Überwachungsregeln zu lesen.

ReadPermissions 131072

Gibt das Recht auf Öffnen und Kopieren von Zugriffs- und Überwachungsregeln aus einem Ordner oder einer Datei an. Dazu gehört nicht das Recht, Daten, Dateisystemattribute und erweiterte Dateisystemattribute zu lesen.

Synchronize 1048576

Gibt an, ob die Anwendung warten kann, bis ein Dateihandle mit abschluss eines E/A-Vorgangs synchronisiert wird. Dieser Wert wird automatisch festgelegt, wenn der Zugriff zugelassen und automatisch ausgeschlossen wird, wenn der Zugriff verweigert wird.

TakeOwnership 524288

Gibt das Recht an, den Besitzer eines Ordners oder einer Datei zu ändern. Beachten Sie, dass Besitzer einer Ressource vollzugriff auf diese Ressource haben.

Traverse 32

Gibt das Recht auf, den Inhalt eines Ordners auflisten und Anwendungen auszuführen, die in diesem Ordner enthalten sind.

Write 278

Gibt das Recht zum Erstellen von Ordnern und Dateien an und zum Hinzufügen oder Entfernen von Daten aus Dateien. Dieses Recht umfasst das WriteData Recht, AppendData Recht, WriteExtendedAttributes Recht und WriteAttributes Rechts.

WriteAttributes 256

Gibt das Recht zum Öffnen und Schreiben von Dateisystemattributen in einen Ordner oder eine Datei an. Dies schließt nicht die Möglichkeit zum Schreiben von Daten, erweiterten Attributen oder Zugriffs- und Überwachungsregeln ein.

WriteData 2

Gibt das Recht zum Öffnen und Schreiben in eine Datei oder einen Ordner an. Dies schließt nicht das Recht auf Öffnen und Schreiben von Dateisystemattributen, erweiterten Dateisystemattributen oder Zugriffs- und Überwachungsregeln ein.

WriteExtendedAttributes 16

Gibt das Recht zum Öffnen und Schreiben erweiterter Dateisystemattribute in einen Ordner oder eine Datei an. Dies schließt nicht die Möglichkeit zum Schreiben von Daten, Attributen oder Zugriffs- und Überwachungsregeln ein.

Beispiele

Im folgenden Beispiel wird die FileSystemRights-Aufzählung verwendet, um eine Zugriffsregel anzugeben und dann die Zugriffsregel aus einer Datei zu entfernen. Sie müssen ein gültiges Benutzer- oder Gruppenkonto angeben, um dieses Beispiel auszuführen.

using System;
using System.IO;
using System.Security.AccessControl;

namespace FileSystemExample
{
    class FileExample
    {
        public static void Main()
        {
            try
            {
                string fileName = "test.xml";

                Console.WriteLine($"Adding access control entry for {fileName}");

                // Add the access control entry to the file.
                AddFileSecurity(fileName, @"DomainName\AccountName",
                    FileSystemRights.ReadData, AccessControlType.Allow);

                Console.WriteLine($"Removing access control entry from {fileName}");

                // Remove the access control entry from the file.
                RemoveFileSecurity(fileName, @"DomainName\AccountName",
                    FileSystemRights.ReadData, AccessControlType.Allow);

                Console.WriteLine("Done.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }

        // Adds an ACL entry on the specified file for the specified account.
        public static void AddFileSecurity(string fileName, string account,
            FileSystemRights rights, AccessControlType controlType)
        {
            FileInfo fileInfo = new(fileName);
            FileSecurity fSecurity = fileInfo.GetAccessControl();

            // Add the FileSystemAccessRule to the security settings.
            fSecurity.AddAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            fileInfo.SetAccessControl(fSecurity);
        }

        // Removes an ACL entry on the specified file for the specified account.
        public static void RemoveFileSecurity(string fileName, string account,
            FileSystemRights rights, AccessControlType controlType)
        {
            FileInfo fileInfo = new(fileName);
            FileSecurity fSecurity = fileInfo.GetAccessControl();

            // Remove the FileSystemAccessRule from the security settings.
            fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            fileInfo.SetAccessControl(fSecurity);
        }
    }
}
Imports System.IO
Imports System.Security.AccessControl

Module FileExample

    Sub Main()
        Try
            Dim fileName As String = "test.xml"

            Console.WriteLine("Adding access control entry for " & fileName)

            ' Add the access control entry to the file.
            AddFileSecurity(fileName, "DomainName\AccountName",
                FileSystemRights.ReadData, AccessControlType.Allow)

            Console.WriteLine("Removing access control entry from " & fileName)

            ' Remove the access control entry from the file.
            RemoveFileSecurity(fileName, "DomainName\AccountName",
                FileSystemRights.ReadData, AccessControlType.Allow)

            Console.WriteLine("Done.")
        Catch e As Exception
            Console.WriteLine(e)
        End Try

    End Sub

    ' Adds an ACL entry on the specified file for the specified account.
    Sub AddFileSecurity(ByVal fileName As String, ByVal account As String,
        ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)

        Dim fileInfo As New FileInfo(fileName)
        Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()

        ' Add the FileSystemAccessRule to the security settings. 
        Dim accessRule As New FileSystemAccessRule(account, rights, controlType)

        fSecurity.AddAccessRule(accessRule)

        ' Set the new access settings.
        fileInfo.SetAccessControl(fSecurity)

    End Sub

    ' Removes an ACL entry on the specified file for the specified account.
    Sub RemoveFileSecurity(ByVal fileName As String, ByVal account As String,
        ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)

        Dim fileInfo As New FileInfo(fileName)
        Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()

        ' Remove the FileSystemAccessRule from the security settings. 
        fSecurity.RemoveAccessRule(New FileSystemAccessRule(account,
            rights, controlType))

        ' Set the new access settings.
        fileInfo.SetAccessControl(fSecurity)

    End Sub
End Module

Hinweise

Die FileSystemRights Enumeration gibt an, welche Dateisystemaktionen für ein bestimmtes Benutzerkonto zulässig sind und welche Dateisystemaktionen für ein bestimmtes Benutzerkonto überwacht werden.

Verwenden Sie die FileSystemRights-Aufzählung beim Erstellen einer Zugriffsregel mit der FileSystemAccessRule Klasse oder beim Erstellen einer Überwachungsregel mit der FileSystemAuditRule Klasse.

Diese Enumeration enthält mehrere granulare Systemrechtewerte und mehrere Werte, die eine Kombination dieser granularen Werte sind. Es ist einfacher, die Kombinationswerte wie FullControl, Readund Writezu verwenden, anstatt jeden Komponentenwert separat anzugeben.

Die rechte CreateDirectories und CreateFiles erfordern das Synchronize Recht. Wenn Sie den Synchronize Wert beim Erstellen einer Datei oder eines Verzeichnisses nicht explizit festlegen, wird er automatisch für Sie festgelegt.

Gilt für: