FileSystemRights Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 |
CreateFiles | 2 | Especifica el derecho a crear un archivo. Este derecho requiere el valor de |
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
, Read
y 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.