FileSystemRights Výčet

Definice

Definuje přístupová práva, která se mají použít při vytváření pravidel přístupu a auditu.

Tento výčet podporuje bitové kombinace hodnot jeho členů.

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
Dědičnost
FileSystemRights
Atributy

Pole

AppendData 4

Určuje právo připojit data na konec souboru.

ChangePermissions 262144

Určuje právo změnit pravidla zabezpečení a auditu přidružená k souboru nebo složce.

CreateDirectories 4

Určuje právo vytvořit složku. Toto právo vyžaduje Synchronize hodnotu.

CreateFiles 2

Určuje právo vytvořit soubor. Toto právo vyžaduje Synchronize hodnotu.

Delete 65536

Určuje právo odstranit složku nebo soubor.

DeleteSubdirectoriesAndFiles 64

Určuje právo odstranit složku a všechny soubory obsažené v této složce.

ExecuteFile 32

Určuje právo ke spuštění souboru aplikace.

FullControl 2032127

Určuje právo vykonávat plnou kontrolu nad složkou nebo souborem a upravovat pravidla řízení přístupu a auditu. Tato hodnota představuje právo dělat cokoli se souborem a je kombinací všech práv v tomto výčtu.

ListDirectory 1

Určuje právo číst obsah adresáře.

Modify 197055

Určuje právo číst, zapisovat, vypisovat obsah složky, odstraňovat složky a soubory a spouštět soubory aplikací. Toto právo zahrnuje právo ReadAndExecute, právo Write a právo Delete.

Read 131209

Určuje právo otevírat a kopírovat složky nebo soubory jen pro čtení. Toto právo zahrnuje právo ReadData, ReadExtendedAttributes vpravo, ReadAttributes vpravo a ReadPermissions vpravo.

ReadAndExecute 131241

Určuje právo otevírat a kopírovat složky nebo soubory jen pro čtení a spouštět soubory aplikací. Toto právo zahrnuje právo Read a právo ExecuteFile.

ReadAttributes 128

Určuje právo otevřít a kopírovat atributy systému souborů ze složky nebo souboru. Tato hodnota například určuje právo zobrazit datum vytvoření nebo změny souboru. Nezahrnuje právo číst data, rozšířené atributy systému souborů ani pravidla přístupu a auditu.

ReadData 1

Určuje právo otevřít a zkopírovat soubor nebo složku. Nezahrnuje právo číst atributy systému souborů, rozšířené atributy systému souborů ani pravidla přístupu a auditu.

ReadExtendedAttributes 8

Určuje právo otevírat a kopírovat atributy rozšířeného systému souborů ze složky nebo souboru. Tato hodnota například určuje právo zobrazit informace o autorovi a obsahu. Nezahrnuje právo číst data, atributy systému souborů ani pravidla přístupu a auditu.

ReadPermissions 131072

Určuje právo otevřít a kopírovat pravidla přístupu a auditu ze složky nebo souboru. Nezahrnuje právo číst data, atributy systému souborů a rozšířené atributy systému souborů.

Synchronize 1048576

Určuje, jestli může aplikace čekat na synchronizaci popisovače souboru s dokončením vstupně-výstupní operace. Tato hodnota je automaticky nastavena při povolení přístupu a automaticky vyloučena při odepření přístupu.

TakeOwnership 524288

Určuje právo změnit vlastníka složky nebo souboru. Všimněte si, že vlastníci prostředku mají úplný přístup k housku.

Traverse 32

Určuje právo vypsat obsah složky a spouštět aplikace obsažené v této složce.

Write 278

Určuje právo vytvářet složky a soubory a přidávat nebo odebírat data ze souborů. Toto právo zahrnuje právo WriteData, AppendData vpravo, WriteExtendedAttributes vpravo a WriteAttributes vpravo.

WriteAttributes 256

Určuje právo otevřít a zapisovat atributy systému souborů do složky nebo souboru. Nezahrnuje možnost zápisu dat, rozšířených atributů nebo pravidel přístupu a auditu.

WriteData 2

Určuje právo k otevření a zápisu do souboru nebo složky. Nezahrnuje právo otevírat a zapisovat atributy systému souborů, rozšířené atributy systému souborů nebo pravidla přístupu a auditu.

WriteExtendedAttributes 16

Určuje právo otevírat a zapisovat atributy rozšířeného systému souborů do složky nebo souboru. Nezahrnuje možnost zápisu dat, atributů nebo pravidel přístupu a auditu.

Příklady

Následující příklad používá FileSystemRights výčtu k určení pravidla přístupu a poté odebere pravidlo přístupu ze souboru. Pro spuštění tohoto příkladu musíte zadat platný účet uživatele nebo skupiny.

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

Poznámky

Výčet FileSystemRights určuje, které akce systému souborů jsou povoleny pro konkrétní uživatelský účet a které akce systému souborů jsou auditovány pro konkrétní uživatelský účet.

Při vytváření pravidla přístupu pomocí třídy FileSystemAccessRule nebo při vytváření pravidla auditování s FileSystemAuditRule třídou použijte výčet FileSystemRights.

Tento výčet obsahuje několik podrobných hodnot systémových práv a několik hodnot, které jsou kombinací těchto podrobných hodnot. Je jednodušší použít kombinované hodnoty, jako jsou FullControl, Reada Write, místo zadávání jednotlivých hodnot komponent samostatně.

Práva CreateDirectories a CreateFiles vyžadují právo Synchronize. Pokud při vytváření souboru nebo adresáře explicitně nenastavíte hodnotu Synchronize, nastaví se automaticky za vás.

Platí pro