FileSystemRights Перечисление

Определение

Определяет права доступа, которые используются при создании правил доступа и аудита.Defines the access rights to use when creating access and audit rules.

Это перечисление имеет атрибут FlagsAttribute, который разрешает побитовое сочетание значений его элементов.

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
Наследование
FileSystemRights
Атрибуты

Поля

AppendData 4

Право добавлять данные в конец файла.Specifies the right to append data to the end of a file.

ChangePermissions 262144

Право на изменение правил безопасности и аудита, связанных с файлом или папкой.Specifies the right to change the security and audit rules associated with a file or folder.

CreateDirectories 4

Задает право на создание папки. Для этого права требуется значение Synchronize.Specifies the right to create a folder This right requires the Synchronize value.

CreateFiles 2

Право на создание файла.Specifies the right to create a file. Для этого права требуется значение Synchronize.This right requires the Synchronize value.

Delete 65536

Право на удаление папки или файла.Specifies the right to delete a folder or file.

DeleteSubdirectoriesAndFiles 64

Право на удаление папки и всех файлов в ней.Specifies the right to delete a folder and any files contained within that folder.

ExecuteFile 32

Право на запуск файла приложения.Specifies the right to run an application file.

FullControl 2032127

Право на полный контроль над папкой или файлом, а также на изменение правил управления доступом и аудита.Specifies the right to exert full control over a folder or file, and to modify access control and audit rules. Это значение представляет право выполнять над файлом любые операции и является объединением всех входящих в перечисление прав.This value represents the right to do anything with a file and is the combination of all rights in this enumeration.

ListDirectory 1

Право на чтение содержимого каталога.Specifies the right to read the contents of a directory.

Modify 197055

Право на чтение, запись, получение содержимого папки, удаление папок и файлов, а также на запуск файлов приложений.Specifies the right to read, write, list folder contents, delete folders and files, and run application files. Это право включает права ReadAndExecute, Write и Delete.This right includes the ReadAndExecute right, the Write right, and the Delete right.

Read 131209

Право открывать и копировать папки и файлы с разрешением только для чтения.Specifies the right to open and copy folders or files as read-only. Это право включает в себя права ReadData, ReadExtendedAttributes, ReadAttributes и ReadPermissions.This right includes the ReadData right, ReadExtendedAttributes right, ReadAttributes right, and ReadPermissions right.

ReadAndExecute 131241

Право открывать и копировать и файлы с разрешением только для чтения, а также запускать файлы приложений.Specifies the right to open and copy folders or files as read-only, and to run application files. Это право включает права Read и ExecuteFile.This right includes the Read right and the ExecuteFile right.

ReadAttributes 128

Право открывать и копировать атрибуты файловой системы для папки или файла.Specifies the right to open and copy file system attributes from a folder or file. Например, это значение дает право на просмотр даты создания или изменения файла.For example, this value specifies the right to view the file creation or modified date. Оно не включает в себя право на чтение данных, дополнительных атрибутов файловой системы или правил доступа и аудита.This does not include the right to read data, extended file system attributes, or access and audit rules.

ReadData 1

Право открывать и копировать файл или папку.Specifies the right to open and copy a file or folder. Оно не включает в себя право на чтение атрибутов файловой системы, дополнительных атрибутов файловой системы или правил доступа и аудита.This does not include the right to read file system attributes, extended file system attributes, or access and audit rules.

ReadExtendedAttributes 8

Право открывать и копировать дополнительные атрибуты файловой системы для папки или файла.Specifies the right to open and copy extended file system attributes from a folder or file. Например, оно позволяет просматривать сведения об авторе или содержимом.For example, this value specifies the right to view author and content information. Оно не включает в себя право на чтение данных, атрибутов файловой системы или правил доступа и аудита.This does not include the right to read data, file system attributes, or access and audit rules.

ReadPermissions 131072

Право открывать и копировать правила доступа и аудита для папки или файла.Specifies the right to open and copy access and audit rules from a folder or file. Оно не включает в себя право на чтение данных, атрибутов файловой системы и дополнительных атрибутов файловой системы.This does not include the right to read data, file system attributes, and extended file system attributes.

Synchronize 1048576

Указывает, может ли приложение ждать синхронизации дескриптора файла с завершением операции ввода-вывода.Specifies whether the application can wait for a file handle to synchronize with the completion of an I/O operation. Это значение автоматически задается при разрешении доступа и автоматически исключается при отклонении доступа.This value is automatically set when allowing access and automatically excluded when denying access.

TakeOwnership 524288

Право менять владельца файла или папки.Specifies the right to change the owner of a folder or file. Следует иметь в виду, что владельцы ресурса имеют полный доступ к этому ресурсу.Note that owners of a resource have full access to that resource.

Traverse 32

Право на получение списка содержимого папки и на запуск содержащихся в этой папке приложений.Specifies the right to list the contents of a folder and to run applications contained within that folder.

Write 278

Право создавать папки и файлы, а также добавлять данные в файлы и удалять данные из файлов.Specifies the right to create folders and files, and to add or remove data from files. Это право включает в себя права WriteData, AppendData, WriteExtendedAttributes и WriteAttributes.This right includes the WriteData right, AppendData right, WriteExtendedAttributes right, and WriteAttributes right.

WriteAttributes 256

Право открытия и записи атрибутов файловой системы для папки или файла.Specifies the right to open and write file system attributes to a folder or file. Оно не включает в себя право на запись данных, дополнительных атрибутов файловой системы или правил доступа и аудита.This does not include the ability to write data, extended attributes, or access and audit rules.

WriteData 2

Право открытия и записи для файла или папки.Specifies the right to open and write to a file or folder. Оно не включает в себя право на открытие и запись атрибутов файловой системы, дополнительных атрибутов файловой системы или правил доступа и аудита.This does not include the right to open and write file system attributes, extended file system attributes, or access and audit rules.

WriteExtendedAttributes 16

Право открытия и записи дополнительных атрибутов файловой системы для папки или файла.Specifies the right to open and write extended file system attributes to a folder or file. Оно не включает в себя право на запись данных, атрибутов файловой системы или правил доступа и аудита.This does not include the ability to write data, attributes, or access and audit rules.

Примеры

В следующем примере используется FileSystemRights перечисление для указания правила доступа, а затем удаляется правило доступа из файла.The following example uses the FileSystemRights enumeration to specify an access rule and then remove the access rule from a file. Для выполнения этого примера необходимо указать допустимую учетную запись пользователя или группы.You must supply a valid user or group account to run this example.

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

Комментарии

FileSystemRightsПеречисление указывает, какие действия файловой системы разрешены для конкретной учетной записи пользователя и какие действия файловой системы подлежат аудиту для конкретной учетной записи пользователя.The FileSystemRights enumeration specifies which file system actions are allowed for a particular user account and which file system actions are audited for a particular user account.

Используйте FileSystemRights перечисление при создании правила доступа с FileSystemAccessRule классом или при создании правила аудита с помощью FileSystemAuditRule класса.Use the FileSystemRights enumeration when creating an access rule with the FileSystemAccessRule class or when creating an audit rule with the FileSystemAuditRule class.

Это перечисление содержит несколько детализированных значений системных прав и несколько значений, которые являются сочетанием этих детализированных значений.This enumeration contains several granular system rights values and several values that are a combination of those granular values. Проще использовать сочетания значений, такие как FullControl , Read и Write , вместо того, чтобы указывать каждое значение каждого компонента отдельно.It is easier to use the combination values such as FullControl, Read, and Write, rather than specifying each component value separately.

CreateDirectoriesПрава и CreateFiles должны иметь Synchronize право.The CreateDirectories and CreateFiles rights require the Synchronize right. Если значение не задано явно Synchronize при создании файла или каталога, оно задается автоматически.If you do not explicitly set the Synchronize value when creating a file or directory, it is set automatically for you.

Применяется к