Partilhar via


FileSystemRights Enumeração

Definição

Define os direitos de acesso a serem usados ao criar regras de acesso e auditoria.

Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.

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
Herança
FileSystemRights
Atributos

Campos

AppendData 4

Especifica o direito de acrescentar dados ao final de um arquivo.

ChangePermissions 262144

Especifica o direito de alterar as regras de segurança e auditoria associadas a um arquivo ou pasta.

CreateDirectories 4

Especifica o direito de criar uma pasta Esse direito requer o valor Synchronize.

CreateFiles 2

Especifica o direito de criar um arquivo. Esse direito requer o valor Synchronize.

Delete 65536

Especifica o direito de excluir uma pasta ou arquivo.

DeleteSubdirectoriesAndFiles 64

Especifica o direito de excluir uma pasta e todos os arquivos contidos nessa pasta.

ExecuteFile 32

Especifica o direito de executar um arquivo de aplicativo.

FullControl 2032127

Especifica o direito de exercer controle total sobre uma pasta ou arquivo e modificar regras de controle de acesso e auditoria. Esse valor representa o direito de fazer qualquer coisa com um arquivo e é a combinação de todos os direitos nessa enumeração.

ListDirectory 1

Especifica o direito de ler o conteúdo de um diretório.

Modify 197055

Especifica o direito de ler, gravar, listar conteúdos de pastas, excluir pastas e arquivos e executar arquivos de aplicativo. Esse direito inclui a ReadAndExecute direita, a Write direita e a Delete direita.

Read 131209

Especifica o direito de abrir e copiar pastas ou arquivos como somente leitura. Esse direito inclui a ReadData direita, ReadExtendedAttributes direita, ReadAttributes direita e ReadPermissions direita.

ReadAndExecute 131241

Especifica o direito de abrir e copiar pastas ou arquivos como somente leitura e executar arquivos de aplicativo. Esse direito inclui a Read direita e a ExecuteFile direita.

ReadAttributes 128

Especifica o direito de abrir e copiar atributos do sistema de arquivos de uma pasta ou arquivo. Por exemplo, esse valor especifica o direito de exibir a criação do arquivo ou a data modificada. Isso não inclui o direito de ler dados, atributos estendidos do sistema de arquivos ou regras de acesso e auditoria.

ReadData 1

Especifica o direito de abrir e copiar um arquivo ou pasta. Isso não inclui o direito de ler atributos do sistema de arquivos, atributos estendidos do sistema de arquivos ou regras de acesso e auditoria.

ReadExtendedAttributes 8

Especifica o direito de abrir e copiar atributos estendidos do sistema de arquivos de uma pasta ou arquivo. Por exemplo, esse valor especifica o direito de exibir informações de autor e conteúdo. Isso não inclui o direito de ler dados, atributos do sistema de arquivos ou regras de acesso e auditoria.

ReadPermissions 131072

Especifica o direito de abrir e copiar regras de acesso e auditoria de uma pasta ou arquivo. Isso não inclui o direito de ler dados, atributos do sistema de arquivos e atributos estendidos do sistema de arquivos.

Synchronize 1048576

Especifica se o aplicativo pode aguardar a sincronização de um identificador de arquivo com a conclusão de uma operação de E/S. Esse valor é definido automaticamente ao permitir o acesso e excluído automaticamente ao negar o acesso.

TakeOwnership 524288

Especifica o direito de alterar o proprietário de uma pasta ou arquivo. Observe que os proprietários de um recurso têm acesso total a esse recurso.

Traverse 32

Especifica o direito de listar o conteúdo de uma pasta e executar aplicativos contidos nessa pasta.

Write 278

Especifica o direito de criar pastas e arquivos e adicionar ou remover dados de arquivos. Esse direito inclui a WriteData direita, AppendData direita, WriteExtendedAttributes direita e WriteAttributes direita.

WriteAttributes 256

Especifica o direito de abrir e gravar atributos do sistema de arquivos em uma pasta ou arquivo. Isso não inclui a capacidade de gravar dados, atributos estendidos ou regras de acesso e auditoria.

WriteData 2

Especifica o direito de abrir e gravar em um arquivo ou pasta. Isso não inclui o direito de abrir e gravar atributos do sistema de arquivos, atributos estendidos do sistema de arquivos ou regras de acesso e auditoria.

WriteExtendedAttributes 16

Especifica o direito de abrir e gravar atributos estendidos do sistema de arquivos em uma pasta ou arquivo. Isso não inclui a capacidade de gravar dados, atributos ou regras de acesso e auditoria.

Exemplos

O exemplo a seguir usa a enumeração FileSystemRights para especificar uma regra de acesso e, em seguida, remove a regra de acesso de um arquivo. Você deve fornecer uma conta de usuário ou grupo válida para executar este exemplo.

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

Comentários

A enumeração FileSystemRights especifica quais ações do sistema de arquivos são permitidas para uma conta de usuário específica e quais ações do sistema de arquivos são auditadas para uma conta de usuário específica.

Use a enumeração FileSystemRights ao criar uma regra de acesso com a classe FileSystemAccessRule ou ao criar uma regra de auditoria com a classe FileSystemAuditRule.

Essa enumeração contém vários valores granulares de direitos do sistema e vários valores que são uma combinação desses valores granulares. É mais fácil usar os valores de combinação, como FullControl, Reade Write, em vez de especificar cada valor de componente separadamente.

Os direitos CreateDirectories e CreateFiles exigem o direito Synchronize. Se você não definir explicitamente o valor Synchronize ao criar um arquivo ou diretório, ele será definido automaticamente para você.

Aplica-se a