FileSystemRights Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Definuje přístupová práva, která se mají použít při vytváření pravidel přístupu a auditu.
Tento výčet podporuje bitové kombinace hodnot jeho členů.
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
- Dědičnost
- Atributy
Pole
AppendData | 4 | Určuje právo připojit data na konec souboru. |
ChangePermissions | 262144 | Určuje právo změnit pravidla zabezpečení a auditu přidružená k souboru nebo složce. |
CreateDirectories | 4 | Určuje právo vytvořit složku. Toto právo vyžaduje |
CreateFiles | 2 | Určuje právo vytvořit soubor. Toto právo vyžaduje |
Delete | 65536 | Určuje právo odstranit složku nebo soubor. |
DeleteSubdirectoriesAndFiles | 64 | Určuje právo odstranit složku a všechny soubory obsažené v této složce. |
ExecuteFile | 32 | Určuje právo ke spuštění souboru aplikace. |
FullControl | 2032127 | Určuje právo vykonávat plnou kontrolu nad složkou nebo souborem a upravovat pravidla řízení přístupu a auditu. Tato hodnota představuje právo dělat cokoli se souborem a je kombinací všech práv v tomto výčtu. |
ListDirectory | 1 | Určuje právo číst obsah adresáře. |
Modify | 197055 | Určuje právo číst, zapisovat, vypisovat obsah složky, odstraňovat složky a soubory a spouštět soubory aplikací. Toto právo zahrnuje právo ReadAndExecute, právo Write a právo Delete. |
Read | 131209 | Určuje právo otevírat a kopírovat složky nebo soubory jen pro čtení. Toto právo zahrnuje právo ReadData, ReadExtendedAttributes vpravo, ReadAttributes vpravo a ReadPermissions vpravo. |
ReadAndExecute | 131241 | Určuje právo otevírat a kopírovat složky nebo soubory jen pro čtení a spouštět soubory aplikací. Toto právo zahrnuje právo Read a právo ExecuteFile. |
ReadAttributes | 128 | Určuje právo otevřít a kopírovat atributy systému souborů ze složky nebo souboru. Tato hodnota například určuje právo zobrazit datum vytvoření nebo změny souboru. Nezahrnuje právo číst data, rozšířené atributy systému souborů ani pravidla přístupu a auditu. |
ReadData | 1 | Určuje právo otevřít a zkopírovat soubor nebo složku. Nezahrnuje právo číst atributy systému souborů, rozšířené atributy systému souborů ani pravidla přístupu a auditu. |
ReadExtendedAttributes | 8 | Určuje právo otevírat a kopírovat atributy rozšířeného systému souborů ze složky nebo souboru. Tato hodnota například určuje právo zobrazit informace o autorovi a obsahu. Nezahrnuje právo číst data, atributy systému souborů ani pravidla přístupu a auditu. |
ReadPermissions | 131072 | Určuje právo otevřít a kopírovat pravidla přístupu a auditu ze složky nebo souboru. Nezahrnuje právo číst data, atributy systému souborů a rozšířené atributy systému souborů. |
Synchronize | 1048576 | Určuje, jestli může aplikace čekat na synchronizaci popisovače souboru s dokončením vstupně-výstupní operace. Tato hodnota je automaticky nastavena při povolení přístupu a automaticky vyloučena při odepření přístupu. |
TakeOwnership | 524288 | Určuje právo změnit vlastníka složky nebo souboru. Všimněte si, že vlastníci prostředku mají úplný přístup k housku. |
Traverse | 32 | Určuje právo vypsat obsah složky a spouštět aplikace obsažené v této složce. |
Write | 278 | Určuje právo vytvářet složky a soubory a přidávat nebo odebírat data ze souborů. Toto právo zahrnuje právo WriteData, AppendData vpravo, WriteExtendedAttributes vpravo a WriteAttributes vpravo. |
WriteAttributes | 256 | Určuje právo otevřít a zapisovat atributy systému souborů do složky nebo souboru. Nezahrnuje možnost zápisu dat, rozšířených atributů nebo pravidel přístupu a auditu. |
WriteData | 2 | Určuje právo k otevření a zápisu do souboru nebo složky. Nezahrnuje právo otevírat a zapisovat atributy systému souborů, rozšířené atributy systému souborů nebo pravidla přístupu a auditu. |
WriteExtendedAttributes | 16 | Určuje právo otevírat a zapisovat atributy rozšířeného systému souborů do složky nebo souboru. Nezahrnuje možnost zápisu dat, atributů nebo pravidel přístupu a auditu. |
Příklady
Následující příklad používá FileSystemRights
výčtu k určení pravidla přístupu a poté odebere pravidlo přístupu ze souboru. Pro spuštění tohoto příkladu musíte zadat platný účet uživatele nebo skupiny.
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
Poznámky
Výčet FileSystemRights určuje, které akce systému souborů jsou povoleny pro konkrétní uživatelský účet a které akce systému souborů jsou auditovány pro konkrétní uživatelský účet.
Při vytváření pravidla přístupu pomocí třídy FileSystemAccessRule nebo při vytváření pravidla auditování s FileSystemAuditRule třídou použijte výčet FileSystemRights.
Tento výčet obsahuje několik podrobných hodnot systémových práv a několik hodnot, které jsou kombinací těchto podrobných hodnot. Je jednodušší použít kombinované hodnoty, jako jsou FullControl
, Read
a Write
, místo zadávání jednotlivých hodnot komponent samostatně.
Práva CreateDirectories
a CreateFiles
vyžadují právo Synchronize
. Pokud při vytváření souboru nebo adresáře explicitně nenastavíte hodnotu Synchronize
, nastaví se automaticky za vás.