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

Name Hodnota Description
ListDirectory 1

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

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.

CreateFiles 2

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

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.

AppendData 4

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

CreateDirectories 4

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

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.

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.

ExecuteFile 32

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

Traverse 32

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

DeleteSubdirectoriesAndFiles 64

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

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.

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.

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 WriteData právo, AppendData právo, WriteExtendedAttributes právo a WriteAttributes právo.

Delete 65536

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

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ů.

Read 131209

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

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 Read právo a ExecuteFile právo.

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 ReadAndExecute právo, Write vpravo a Delete vpravo.

ChangePermissions 262144

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

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.

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.

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.

Příklady

Následující příklad používá FileSystemRights výčet k určení pravidla přístupu a pak 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.

Výčet FileSystemRights použijte při vytváření pravidla přístupu s FileSystemAccessRule třídou nebo při vytváření pravidla auditu s FileSystemAuditRule třídou.

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 FullControlje , Reada Write, místo zadávání jednotlivých hodnot komponent samostatně.

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

Platí pro