FileSystemRights Enumeración

Definición

Define los derechos de acceso que se usarán al crear reglas de acceso y auditoría.

Esta enumeración admite una combinación bit a bit de sus valores de miembro.

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
Herencia
FileSystemRights
Atributos

Campos

AppendData 4

Especifica el derecho a anexar datos al final de un archivo.

ChangePermissions 262144

Especifica el derecho a cambiar las reglas de seguridad y auditoría asociadas a un archivo o carpeta.

CreateDirectories 4

Especifica el derecho a crear una carpeta Este derecho requiere el valor Synchronize.

CreateFiles 2

Especifica el derecho a crear un archivo. Este derecho requiere el valor de Synchronize.

Delete 65536

Especifica el derecho a eliminar una carpeta o un archivo.

DeleteSubdirectoriesAndFiles 64

Especifica el derecho a eliminar una carpeta y los archivos contenidos en esa carpeta.

ExecuteFile 32

Especifica el derecho a ejecutar un archivo de aplicación.

FullControl 2032127

Especifica el derecho a ejercer el control total sobre una carpeta o archivo, y para modificar las reglas de control de acceso y auditoría. Este valor representa el derecho a hacer cualquier cosa con un archivo y es la combinación de todos los derechos de esta enumeración.

ListDirectory 1

Especifica el derecho a leer el contenido de un directorio.

Modify 197055

Especifica el derecho a leer, escribir, enumerar el contenido de la carpeta, eliminar carpetas y archivos y ejecutar archivos de aplicación. Este derecho incluye la ReadAndExecute derecha, la Write derecha y la Delete derecha.

Read 131209

Especifica el derecho a abrir y copiar carpetas o archivos como de solo lectura. Este derecho incluye el derecho ReadData, ReadExtendedAttributes derecho, ReadAttributes derecho y ReadPermissions derecho.

ReadAndExecute 131241

Especifica el derecho a abrir y copiar carpetas o archivos como de solo lectura y ejecutar archivos de aplicación. Este derecho incluye la Read derecha y la ExecuteFile derecha.

ReadAttributes 128

Especifica el derecho a abrir y copiar atributos del sistema de archivos desde una carpeta o archivo. Por ejemplo, este valor especifica el derecho a ver la fecha de creación o modificación del archivo. Esto no incluye el derecho a leer datos, atributos extendidos del sistema de archivos ni a las reglas de acceso y auditoría.

ReadData 1

Especifica el derecho para abrir y copiar un archivo o carpeta. Esto no incluye el derecho a leer atributos del sistema de archivos, atributos extendidos del sistema de archivos ni reglas de acceso y auditoría.

ReadExtendedAttributes 8

Especifica el derecho a abrir y copiar atributos de sistema de archivos extendidos desde una carpeta o archivo. Por ejemplo, este valor especifica el derecho a ver la información de autor y contenido. Esto no incluye el derecho a leer datos, atributos del sistema de archivos ni a reglas de acceso y auditoría.

ReadPermissions 131072

Especifica el derecho a abrir y copiar reglas de acceso y auditoría desde una carpeta o archivo. Esto no incluye el derecho a leer datos, atributos del sistema de archivos y atributos extendidos del sistema de archivos.

Synchronize 1048576

Especifica si la aplicación puede esperar a que un identificador de archivo se sincronice con la finalización de una operación de E/S. Este valor se establece automáticamente cuando se permite el acceso y se excluye automáticamente al denegar el acceso.

TakeOwnership 524288

Especifica el derecho a cambiar el propietario de una carpeta o archivo. Tenga en cuenta que los propietarios de un recurso tienen acceso total a ese recurso.

Traverse 32

Especifica el derecho a enumerar el contenido de una carpeta y ejecutar aplicaciones contenidas en esa carpeta.

Write 278

Especifica el derecho a crear carpetas y archivos y agregar o quitar datos de archivos. Este derecho incluye el derecho WriteData, AppendData derecho, WriteExtendedAttributes derecho y WriteAttributes derecho.

WriteAttributes 256

Especifica el derecho a abrir y escribir atributos del sistema de archivos en una carpeta o archivo. Esto no incluye la capacidad de escribir datos, atributos extendidos ni reglas de acceso y auditoría.

WriteData 2

Especifica el derecho de abrir y escribir en un archivo o carpeta. Esto no incluye el derecho a abrir y escribir atributos del sistema de archivos, atributos extendidos del sistema de archivos o reglas de acceso y auditoría.

WriteExtendedAttributes 16

Especifica el derecho a abrir y escribir atributos de sistema de archivos extendidos en una carpeta o archivo. Esto no incluye la capacidad de escribir datos, atributos ni reglas de acceso y auditoría.

Ejemplos

En el ejemplo siguiente se usa la enumeración FileSystemRights para especificar una regla de acceso y, a continuación, se quita la regla de acceso de un archivo. Debe proporcionar una cuenta de usuario o grupo válida para ejecutar este ejemplo.

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

Comentarios

La enumeración FileSystemRights especifica qué acciones del sistema de archivos se permiten para una cuenta de usuario determinada y qué acciones del sistema de archivos se auditan para una cuenta de usuario determinada.

Use la enumeración FileSystemRights al crear una regla de acceso con la clase FileSystemAccessRule o al crear una regla de auditoría con la clase FileSystemAuditRule.

Esta enumeración contiene varios valores de derechos del sistema pormenorizados y varios valores que son una combinación de esos valores granulares. Es más fácil usar los valores de combinación, como FullControl, Ready Write, en lugar de especificar cada valor de componente por separado.

Los derechos CreateDirectories y CreateFiles requieren el derecho Synchronize. Si no establece explícitamente el valor de Synchronize al crear un archivo o directorio, se establece automáticamente.

Se aplica a