FileSystemRights Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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 |
CreateFiles | 2 | Especifica o direito de criar um arquivo. Esse direito requer o valor |
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
, Read
e 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ê.