FileSystemRights Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Définit les droits d'accès à utiliser lors de la création de règles d'accès et d'audit.
Cette énumération prend en charge une combinaison au niveau du bit de ses valeurs membres.
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
- Héritage
- Attributs
Champs
AppendData | 4 | Spécifie le droit d'ajouter des données à la fin d'un fichier. |
ChangePermissions | 262144 | Spécifie le droit de modifier les règles de sécurité et d'audit associées à un fichier ou un dossier. |
CreateDirectories | 4 | Spécifie le droit de créer un dossier. Ce droit nécessite la valeur |
CreateFiles | 2 | Spécifie le droit de créer un fichier. Ce droit nécessite la valeur |
Delete | 65536 | Spécifie le droit de supprimer un dossier ou un fichier. |
DeleteSubdirectoriesAndFiles | 64 | Spécifie le droit de supprimer un dossier et tous les fichiers contenus dans ce dossier. |
ExecuteFile | 32 | Spécifie le droit d'exécuter un fichier d'application. |
FullControl | 2032127 | Spécifie le droit d'exercer le contrôle total sur un dossier ou un fichier et de modifier les règles de contrôle d'accès et d'audit. Cette valeur représente le droit de tout faire avec un fichier et est la combinaison de tous les droits dans cette énumération. |
ListDirectory | 1 | Spécifie le droit de lire le contenu d'un répertoire. |
Modify | 197055 | Spécifie le droit de lire, d'écrire, de lister le contenu d'un dossier, de supprimer des dossiers et des fichiers, et d'exécuter des fichiers d'application. Ce droit inclut le droit ReadAndExecute, le droit Write et le droit Delete. |
Read | 131209 | Spécifie le droit d'ouvrir et de copier des dossiers ou des fichiers en lecture seule. Ce droit inclut le droit ReadData, le droit ReadExtendedAttributes, le droit ReadAttributes et le droit ReadPermissions. |
ReadAndExecute | 131241 | Spécifie le droit d'ouvrir et de copier des dossiers ou des fichiers en lecture seule et d'exécuter des fichiers d'application. Ce droit inclut le droit Read et le droit ExecuteFile. |
ReadAttributes | 128 | Spécifie le droit d'ouvrir et de copier les attributs du système de fichiers d'un dossier ou d'un fichier. Par exemple, cette valeur spécifie le droit de consulter la date de création ou de modification d'un fichier. Cela n’inclut pas le droit de lire les données, les attributs du système de fichiers étendus ou les règles d’accès et d’audit. |
ReadData | 1 | Spécifie le droit d'ouvrir et de copier un fichier ou un dossier. Cela n’inclut pas le droit de lire des attributs du système de fichiers, des attributs du système de fichiers étendus ou des règles d’accès et d’audit. |
ReadExtendedAttributes | 8 | Spécifie le droit d'ouvrir et de copier des attributs du système de fichiers étendus d'un dossier ou d'un fichier. Par exemple, cette valeur spécifie le droit de consulter les informations sur l'auteur et le contenu. Cela n’inclut pas le droit de lire les données, les attributs du système de fichiers ou les règles d’accès et d’audit. |
ReadPermissions | 131072 | Spécifie le droit d'ouvrir et de copier les règles d'accès et d'audit d'un dossier ou d'un fichier. Cela n'inclut pas le droit de lire les données, les attributs du système du fichier et les attributs du système de fichiers étendu. |
Synchronize | 1048576 | Spécifie si l'application peut attendre la synchronisation d'un handle de fichiers avec la fin d'une opération d'E/S. Cette valeur est définie automatiquement quand l’accès est autorisé, et est automatiquement exclue quand l’accès est refusé. |
TakeOwnership | 524288 | Spécifie le droit de modifier le propriétaire d'un dossier ou d'un fichier. Notez que les propriétaires d'une ressource ont l'accès complet à cette ressource. |
Traverse | 32 | Spécifie le droit de lister le contenu d'un dossier et d'exécuter des applications contenues dans ce dossier. |
Write | 278 | Spécifie le droit de créer des dossiers et des fichiers et d'ajouter ou de supprimer des données dans des fichiers. Ce droit inclut le droit WriteData, le droit AppendData, le droit WriteExtendedAttributes et le droit WriteAttributes. |
WriteAttributes | 256 | Spécifie le droit d'ouvrir des attributs du système de fichiers d'un dossier ou d'un fichier et d'y écrire. Cela n'inclut pas la capacité d'écrire des données, des attributs étendus ou des règles d'accès et d'audit. |
WriteData | 2 | Spécifie le droit d'ouvrir un fichier ou un dossier et d'y écrire. Cela n'inclut pas le droit d'ouvrir des attributs du système de fichiers, des attributs du système de fichiers étendus ou des règles d'accès et d'audit et d'y écrire. |
WriteExtendedAttributes | 16 | Spécifie le droit d'ouvrir des attributs du système de fichiers étendus d'un dossier ou d'un fichier et d'y écrire. Cela n'inclut pas la capacité d'écrire des données, des attributs ou des règles d'accès et d'audit. |
Exemples
L’exemple suivant utilise l’énumération FileSystemRights
pour spécifier une règle d’accès, puis supprimer la règle d’accès d’un fichier. Vous devez entrer un compte d'utilisateur ou de groupe valide pour exécuter cet exemple.
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
Remarques
L’énumération FileSystemRights spécifie quelles actions de système de fichiers sont autorisées pour un compte d’utilisateur particulier et quelles actions de système de fichiers sont auditées pour un compte d’utilisateur particulier.
Utilisez l’énumération lors de la FileSystemRights création d’une règle d’accès avec la FileSystemAccessRule classe ou lors de la création d’une règle d’audit avec la FileSystemAuditRule classe.
Cette énumération contient plusieurs valeurs de droits système granulaires et plusieurs valeurs qui sont une combinaison de ces valeurs granulaires. Il est plus facile d’utiliser les valeurs de combinaison telles que FullControl
, Read
et Write
, plutôt que de spécifier séparément chaque valeur de composant.
Les droits et CreateFiles
les CreateDirectories
droits exigent le Synchronize
droit. Si vous ne définissez pas explicitement la valeur lors de la Synchronize
création d’un fichier ou d’un répertoire, elle est définie automatiquement pour vous.