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 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
- 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 |
CreateFiles | 2 | Especifica el derecho para crear un archivo. Este derecho requiere el |
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
, Read
y 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 establecerá automáticamente.
Se aplica a
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de