Udostępnij za pośrednictwem


FileSystemRights Wyliczenie

Definicja

Definiuje prawa dostępu do użycia podczas tworzenia reguł dostępu i inspekcji.

To wyliczenie obsługuje bitową kombinację jego wartości składowych.

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
Dziedziczenie
FileSystemRights
Atrybuty

Pola

AppendData 4

Określa prawo do dołączania danych na końcu pliku.

ChangePermissions 262144

Określa prawo do zmiany reguł zabezpieczeń i inspekcji skojarzonych z plikiem lub folderem.

CreateDirectories 4

Określa prawo do utworzenia folderu To prawo wymaga wartości Synchronize.

CreateFiles 2

Określa prawo do utworzenia pliku. To prawo wymaga wartości Synchronize.

Delete 65536

Określa prawo do usunięcia folderu lub pliku.

DeleteSubdirectoriesAndFiles 64

Określa prawo do usunięcia folderu i wszystkich plików zawartych w tym folderze.

ExecuteFile 32

Określa prawo do uruchamiania pliku aplikacji.

FullControl 2032127

Określa prawo do wywierania pełnej kontroli nad folderem lub plikiem oraz modyfikowania zasad kontroli dostępu i inspekcji. Ta wartość reprezentuje prawo do wykonywania dowolnych czynności z plikiem i jest kombinacją wszystkich praw w tym wyliczeniem.

ListDirectory 1

Określa prawo do odczytu zawartości katalogu.

Modify 197055

Określa prawo do odczytu, zapisu, wyświetlania zawartości folderu, usuwania folderów i plików oraz uruchamiania plików aplikacji. To prawo obejmuje prawy ReadAndExecute, prawa Write i prawa Delete.

Read 131209

Określa prawo do otwierania i kopiowania folderów lub plików jako tylko do odczytu. To prawo obejmuje prawo ReadData, ReadExtendedAttributes prawo, ReadAttributes prawo i ReadPermissions prawo.

ReadAndExecute 131241

Określa prawo do otwierania i kopiowania folderów lub plików jako tylko do odczytu oraz uruchamiania plików aplikacji. To prawo obejmuje prawo Read i prawo ExecuteFile.

ReadAttributes 128

Określa prawo do otwierania i kopiowania atrybutów systemu plików z folderu lub pliku. Na przykład ta wartość określa prawo do wyświetlania daty utworzenia lub modyfikacji pliku. Nie obejmuje to prawa do odczytywania danych, rozszerzonych atrybutów systemu plików ani reguł dostępu i inspekcji.

ReadData 1

Określa prawo do otwierania i kopiowania pliku lub folderu. Nie obejmuje to prawa do odczytywania atrybutów systemu plików, rozszerzonych atrybutów systemu plików ani reguł dostępu i inspekcji.

ReadExtendedAttributes 8

Określa prawo do otwierania i kopiowania rozszerzonych atrybutów systemu plików z folderu lub pliku. Na przykład ta wartość określa prawo do wyświetlania informacji o autorze i zawartości. Nie obejmuje to prawa do odczytu danych, atrybutów systemu plików ani reguł dostępu i inspekcji.

ReadPermissions 131072

Określa prawo do otwierania i kopiowania reguł dostępu i inspekcji z folderu lub pliku. Nie obejmuje to prawa do odczytu danych, atrybutów systemu plików i rozszerzonych atrybutów systemu plików.

Synchronize 1048576

Określa, czy aplikacja może czekać na dojście do pliku do synchronizacji z ukończeniem operacji we/wy. Ta wartość jest ustawiana automatycznie podczas zezwalania na dostęp i automatycznego wykluczania podczas odmowy dostępu.

TakeOwnership 524288

Określa prawo do zmiany właściciela folderu lub pliku. Należy pamiętać, że właściciele zasobu mają pełny dostęp do tego zasobu.

Traverse 32

Określa prawo do wyświetlania zawartości folderu i uruchamiania aplikacji zawartych w tym folderze.

Write 278

Określa prawo do tworzenia folderów i plików oraz dodawania lub usuwania danych z plików. To prawo obejmuje prawo WriteData, AppendData prawo, WriteExtendedAttributes prawo i WriteAttributes prawo.

WriteAttributes 256

Określa prawo do otwierania i zapisywania atrybutów systemu plików w folderze lub pliku. Nie obejmuje to możliwości zapisu danych, atrybutów rozszerzonych ani reguł dostępu i inspekcji.

WriteData 2

Określa prawo do otwierania i zapisywania w pliku lub folderze. Nie obejmuje to prawa do otwierania i zapisywania atrybutów systemu plików, rozszerzonych atrybutów systemu plików ani reguł dostępu i inspekcji.

WriteExtendedAttributes 16

Określa prawo do otwierania i zapisywania rozszerzonych atrybutów systemu plików do folderu lub pliku. Nie obejmuje to możliwości zapisu danych, atrybutów ani reguł dostępu i inspekcji.

Przykłady

W poniższym przykładzie użyto wyliczenia FileSystemRights w celu określenia reguły dostępu, a następnie usunięcia reguły dostępu z pliku. Aby uruchomić ten przykład, musisz podać prawidłowe konto użytkownika lub grupy.

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

Uwagi

Wyliczenie FileSystemRights określa, które akcje systemu plików są dozwolone dla określonego konta użytkownika i które akcje systemu plików są poddawane inspekcji dla określonego konta użytkownika.

Użyj wyliczenia FileSystemRights podczas tworzenia reguły dostępu z klasą FileSystemAccessRule lub podczas tworzenia reguły inspekcji z klasą FileSystemAuditRule.

Wyliczenie zawiera kilka szczegółowych wartości praw systemowych i kilka wartości, które są kombinacją tych szczegółowych wartości. Łatwiej jest używać wartości kombinacji, takich jak FullControl, Readi Write, zamiast oddzielnie określać każdą wartość składnika.

Prawa CreateDirectories i CreateFiles wymagają prawa Synchronize. Jeśli nie ustawisz jawnie wartości Synchronize podczas tworzenia pliku lub katalogu, zostanie ona ustawiona automatycznie.

Dotyczy