FileSystemRights Enumeración

Definición

Define los derechos de acceso que se van a utilizar al crear reglas de acceso y de 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 para anexar los datos al final de un archivo.

ChangePermissions 262144

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

CreateDirectories 4

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

CreateFiles 2

Especifica el derecho para crear un archivo. Este derecho requiere el Synchronize valor.

Delete 65536

Especifica el derecho para eliminar una carpeta o archivo.

DeleteSubdirectoriesAndFiles 64

Especifica el derecho para eliminar una carpeta y cualquier archivo contenido dentro de esa carpeta.

ExecuteFile 32

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

FullControl 2032127

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

ListDirectory 1

Especifica el derecho para leer el contenido de un directorio.

Modify 197055

Especifica el derecho para leer, escribir, mostrar el contenido de una carpeta, eliminar carpetas y archivos y ejecutar los archivos de aplicación. Este derecho incluye los derechos: ReadAndExecute, Write y Delete.

Read 131209

Especifica el derecho para abrir y copiar carpetas o archivos como de sólo lectura. Este derecho incluye los derechos: ReadData, ReadExtendedAttributes, ReadAttributes y ReadPermissions.

ReadAndExecute 131241

Especifica el derecho para abrir y copiar carpetas o archivos como de sólo lectura y para ejecutar los archivos de aplicación. Este derecho incluye los derechos: Read y ExecuteFile.

ReadAttributes 128

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

ReadData 1

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

ReadExtendedAttributes 8

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

ReadPermissions 131072

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

Synchronize 1048576

Especifica si la aplicación puede esperar a que se sincronice un identificador de archivos con la realización de una operación de E/S. Este valor se establece de forma automática al conceder acceso y se excluye de forma automática al denegarlo.

TakeOwnership 524288

Especifica el derecho para cambiar el propietario de una carpeta o archivo. Observe que los propietarios de un recurso tienen acceso completo a ese recurso.

Traverse 32

Especifica el derecho para mostrar el contenido de una carpeta y para ejecutar aplicaciones contenidas en esa carpeta.

Write 278

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

WriteAttributes 256

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

WriteData 2

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

WriteExtendedAttributes 16

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

Ejemplos

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

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

Comentarios

La FileSystemRights enumeración 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 FileSystemRights enumeración al crear una regla de acceso con la FileSystemAccessRule clase o al crear una regla de auditoría con la FileSystemAuditRule clase .

Esta enumeración contiene varios valores de derechos del sistema granulares 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 CreateDirectories derechos y CreateFiles requieren el Synchronize derecho. Si no establece explícitamente el Synchronize valor al crear un archivo o directorio, se establece automáticamente.

Se aplica a