FileSystemRights Énumération

Définition

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
FileSystemRights
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 Synchroniser.

CreateFiles 2

Spécifie le droit de créer un fichier. Ce droit nécessite la valeur Synchroniser.

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, Readet 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.

S’applique à