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 k vytvoření složky. Toto právo vyžaduje Synchronize hodnotu .

CreateFiles 2

Určuje právo k vytvoření souboru. 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 řízení přístupu a pravidla auditu. Tato hodnota představuje právo se souborem cokoliv dělat 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žek, odstraňovat složky a soubory a spouštět soubory aplikací. Toto právo zahrnuje ReadAndExecute práva, Write práva a Delete práva.

Read 131209

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

ReadAndExecute 131241

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

ReadAttributes 128

Určuje právo otevírat 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 na čtení dat, 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. To 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 rozšířené atributy systému souborů ze složky nebo souboru. Tato hodnota například určuje právo zobrazit informace o autorovi a obsahu. To nezahrnuje právo číst data, atributy systému souborů ani pravidla přístupu a auditu.

ReadPermissions 131072

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

Synchronize 1048576

Určuje, jestli aplikace může č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 danému prostředku.

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

WriteAttributes 256

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

WriteData 2

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

WriteExtendedAttributes 16

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

Příklady

Následující příklad používá FileSystemRights výčet k určení pravidla přístupu a poté odebere pravidlo přístupu ze souboru. Abyste mohli tento příklad spustit, musíte zadat platný uživatelský nebo skupinový účet.

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

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ů se auditují pro konkrétní uživatelský účet.

FileSystemRights Výčet 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 odstupňovaných hodnot. Je jednodušší použít kombinované hodnoty, jako FullControljsou , Reada , místo Writezadá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 Synchronize hodnotu, nastaví se automaticky.

Platí pro