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 Synchronize.

CreateFiles 2

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

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 un 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 faire quoi que ce soit 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 du 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, ReadExtendedAttributes droit, ReadAttributes droit et ReadPermissions droit.

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 des attributs de système de fichiers à partir d’un dossier ou d’un fichier. Par exemple, cette valeur spécifie le droit d’afficher la date de création ou de modification du fichier. Cela n’inclut pas le droit de lire des données, des attributs de système de fichiers étendus ou des 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 les attributs du système de fichiers, les attributs de système de fichiers étendus ou les règles d’accès et d’audit.

ReadExtendedAttributes 8

Spécifie le droit d’ouvrir et de copier des attributs de système de fichiers étendus à partir d’un dossier ou d’un fichier. Par exemple, cette valeur spécifie le droit d’afficher les informations d’auteur et de contenu. Cela n’inclut pas le droit de lire des données, des attributs de système de fichiers ou des 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 à partir d’un dossier ou d’un fichier. Cela n’inclut pas le droit de lire des données, des attributs de système de fichiers et des attributs de système de fichiers étendus.

Synchronize 1048576

Spécifie si l’application peut attendre qu’un handle de fichier se synchronise avec la fin d’une opération d’E/S. Cette valeur est automatiquement définie lors de l’autorisation d’accès et exclue automatiquement lors du refus d’accès.

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 un accès complet à cette ressource.

Traverse 32

Spécifie le droit de répertorier 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 de fichiers. Ce droit inclut le droit WriteData, AppendData droit, WriteExtendedAttributes droit et WriteAttributes droit.

WriteAttributes 256

Spécifie le droit d’ouvrir et d’écrire des attributs de système de fichiers dans un dossier ou un fichier. Cela n’inclut pas la possibilité 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 et d’écrire dans un fichier ou un dossier. Cela n’inclut pas le droit d’ouvrir et d’écrire des attributs de système de fichiers, des attributs de système de fichiers étendus ou des règles d’accès et d’audit.

WriteExtendedAttributes 16

Spécifie le droit d’ouvrir et d’écrire des attributs de système de fichiers étendus dans un dossier ou un fichier. Cela n’inclut pas la possibilité 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 supprime la règle d’accès d’un fichier. Vous devez fournir un compte d’utilisateur ou de groupe valide pour exécuter cet exemple.

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

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 FileSystemRights lors de la création d’une règle d’accès avec la classe FileSystemAccessRule ou lors de la création d’une règle d’audit avec la classe FileSystemAuditRule.

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 combinées telles que FullControl, Readet Write, au lieu de spécifier séparément chaque valeur de composant.

Les droits CreateDirectories et CreateFiles nécessitent le droit Synchronize. Si vous ne définissez pas explicitement la valeur Synchronize lors de la création d’un fichier ou d’un répertoire, elle est définie automatiquement pour vous.

S’applique à