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 die Berechtigung an, Daten an das Ende einer Datei anzufügen.

ChangePermissions 262144

Gibt die Berechtigung an, die einer Datei zugeordneten Sicherheits- und Überwachungsregeln zu ändern.

CreateDirectories 4

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

CreateFiles 2

Gibt die Berechtigung an, eine Datei zu erstellen. Dieses Recht erfordert den Synchronize Wert.

Delete 65536

Gibt die Berechtigung an, einen Ordner oder eine Datei zu löschen.

DeleteSubdirectoriesAndFiles 64

Gibt die Berechtigung an, einen Ordner und sämtliche in diesem Ordner enthaltenen Dateien zu löschen.

ExecuteFile 32

Gibt die Berechtigung an, eine Anwendungsdatei auszuführen.

FullControl 2032127

Gibt die Berechtigung für einen Vollzugriff auf eine Datei oder einen Ordner an sowie die Berechtigung, die Zugriffs- und Überwachungsregeln zu ändern. Dieser Wert stellt die Berechtigung dar, jede mögliche Aktion für diese Datei durchzuführen. Er ist eine Kombination aller Werte dieser Enumeration.

ListDirectory 1

Gibt die Berechtigung an, den Inhalt eines Verzeichnisses zu lesen.

Modify 197055

Gibt die Berechtigung an, den Inhalt eines Ordners zu lesen, zu schreiben und aufzulisten, Dateien und Ordner zu löschen und Anwendungsdateien auszuführen. Diese Berechtigung schließt die Berechtigungen ReadAndExecute, Write und Delete ein.

Read 131209

Gibt die Berechtigung an, Ordner oder Dateien schreibgeschützt zu öffnen und zu kopieren. Diese Berechtigung schließt die Berechtigungen ReadData, ReadExtendedAttributes, ReadAttributes und ReadPermissions ein.

ReadAndExecute 131241

Gibt die Berechtigung an, Ordner oder Dateien schreibgeschützt zu öffnen und zu kopieren und Anwendungsdateien auszuführen. Diese Berechtigung schließt die Read-Berechtigung und die ExecuteFile-Berechtigung ein.

ReadAttributes 128

Gibt die Berechtigung an, Dateisystemattribute einer Datei oder eines Ordners zu öffnen und zu kopieren. Dieser Wert gibt z. B. die Berechtigung an, das Erstellungsdatum oder das Änderungsdatum einer Datei zu lesen. Dies schließt nicht die Berechtigung ein, Daten, erweiterte Dateisystemattribute oder Zugriffs- und Überwachungsregeln zu lesen.

ReadData 1

Gibt die Berechtigung an, eine Datei oder einen Ordner zu öffnen und zu kopieren. Dies schließt nicht die Berechtigung ein, Dateisystemattribute, erweiterte Dateisystemattribute oder Zugriffs- und Überwachungsregeln zu lesen.

ReadExtendedAttributes 8

Gibt die Berechtigung an, erweiterte Dateisystemattribute einer Datei oder eines Ordners zu öffnen und zu kopieren. Dieser Wert gibt zum Beispiel die Berechtigung an, den Autor oder Inhaltsinformationen anzuzeigen. Dies schließt nicht die Berechtigung ein, Daten, Dateisystemattribute oder Zugriffs- und Überwachungsregeln zu lesen.

ReadPermissions 131072

Gibt die Berechtigung an, Zugriffs- und Überwachungsregeln für eine Datei oder einen Ordner zu öffnen und zu kopieren. Dies schließt nicht die Berechtigung ein, Daten, Dateisystemattribute oder erweiterte Dateisystemattribute zu lesen.

Synchronize 1048576

Gibt an, ob die Anwendung warten kann, bis ein Dateihandle mit dem Abschluss eines E/A-Vorgangs synchronisiert ist. Dieser Wert wird automatisch festgelegt, wenn der Zugriff zulässig ist, und automatisch ausgeschlossen, wenn der Zugriff verweigert wird.

TakeOwnership 524288

Gibt die Berechtigung an, den Besitzer eines Ordners oder einer Datei zu ändern. Beachten Sie, dass Besitzer einer Ressource über einen Vollzugriff auf diese Ressource verfügen.

Traverse 32

Gibt die Berechtigung an, den Inhalt eines Ordners aufzulisten und in diesem Ordner enthaltene Anwendungen auszuführen.

Write 278

Gibt die Berechtigung an, Ordner und Dateien zu erstellen, Dateien Daten hinzuzufügen und Daten aus Dateien zu entfernen. Diese Berechtigung schließt die Berechtigungen WriteData, AppendData, WriteExtendedAttributes und WriteAttributes ein.

WriteAttributes 256

Gibt die Berechtigung an, Dateisystemattribute einer Datei oder eines Ordners zu öffnen und zu schreiben. Dies schließt nicht die Berechtigung ein, Daten, erweiterte Attribute oder Zugriffs- und Überwachungsregeln zu schreiben.

WriteData 2

Gibt die Berechtigung an, eine Datei oder einen Ordner zu öffnen und in die Datei bzw. den Ordner zu schreiben. Dies schließt nicht die Berechtigung ein, Dateisystemattribute, erweiterte Dateisystemattribute oder Zugriffs- und Überwachungsregeln zu öffnen und zu schreiben.

WriteExtendedAttributes 16

Gibt die Berechtigung an, erweiterte Dateisystemattribute einer Datei oder eines Ordners zu öffnen und zu schreiben. Dies schließt nicht die Berechtigung ein, Daten, Attribute oder Zugriffs- und Überwachungsregeln zu schreiben.

Beispiele

Im folgenden Beispiel wird die FileSystemRights Enumeration 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 namespace System;
using namespace System::IO;
using namespace System::Security::AccessControl;

// Adds an ACL entry on the specified file for the specified account.

void AddFileSecurity(String^ fileName, String^ account, 
                        FileSystemRights rights, AccessControlType controlType)
{
    // Get a FileSecurity object that represents the 
    // current security settings.
    FileSecurity^ fSecurity = File::GetAccessControl(fileName);

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

    // Set the new access settings.
    File::SetAccessControl(fileName, fSecurity);
}

// Removes an ACL entry on the specified file for the specified account.

void RemoveFileSecurity(String^ fileName, String^ account, 
                        FileSystemRights rights, AccessControlType controlType)
{

    // Get a FileSecurity object that represents the 
    // current security settings.
    FileSecurity^ fSecurity = File::GetAccessControl(fileName);

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

    // Set the new access settings.
    File::SetAccessControl(fileName, fSecurity);
}

int main()
{
    try
    {
        String^ fileName = "test.xml";

        Console::WriteLine("Adding access control entry for " + fileName);

        // Add the access control entry to the file.
        AddFileSecurity(fileName, "MYDOMAIN\\MyAccount", 
            FileSystemRights::ReadData, AccessControlType::Allow);

        Console::WriteLine("Removing access control entry from " + fileName);

        // Remove the access control entry from the file.
        RemoveFileSecurity(fileName, "MYDOMAIN\\MyAccount", 
            FileSystemRights::ReadData, AccessControlType::Allow);

        Console::WriteLine("Done.");
    }
    catch (Exception^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}
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)
        {

            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

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

            // Set the new access settings.
            File.SetAccessControl(fileName, 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)
        {

            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

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

            // Set the new access settings.
            File.SetAccessControl(fileName, 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)
  
        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

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

        fSecurity.AddAccessRule(accessRule)

        ' Set the new access settings.
        File.SetAccessControl(fileName, 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)

        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

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

        ' Set the new access settings.
        File.SetAccessControl(fileName, 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 -Enumeration beim Erstellen einer Zugriffsregel mit der FileSystemAccessRule -Klasse oder beim Erstellen einer Überwachungsregel mit der FileSystemAuditRule -Klasse.

Diese Enumeration enthält mehrere granulare Systemrechtswerte 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 CreateDirectories Rechte 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: