FileSystemRights Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет права доступа, используемые при создании правил доступа и аудита.
Это перечисление поддерживает побитовую комбинацию значений его членов.
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
- Наследование
- Атрибуты
Поля
AppendData | 4 | Указывает право добавлять данные в конец файла. |
ChangePermissions | 262144 | Указывает право на изменение правил безопасности и аудита, связанных с файлом или папкой. |
CreateDirectories | 4 | Указывает право на создание папки Это право требует значения |
CreateFiles | 2 | Указывает право на создание файла. Для этого права требуется значение |
Delete | 65536 | Указывает право на удаление папки или файла. |
DeleteSubdirectoriesAndFiles | 64 | Указывает право удалить папку и все файлы, содержащиеся в этой папке. |
ExecuteFile | 32 | Указывает право запуска файла приложения. |
FullControl | 2032127 | Указывает право на полный контроль над папкой или файлом, а также изменение правил контроля доступа и аудита. Это значение представляет право делать что-либо с файлом и является сочетанием всех прав в этом перечислении. |
ListDirectory | 1 | Указывает право на чтение содержимого каталога. |
Modify | 197055 | Указывает право на чтение, запись, содержимое папки списка, удаление папок и файлов, а также запуск файлов приложений. Это право включает ReadAndExecute право, Write право и право Delete. |
Read | 131209 | Указывает право открывать и копировать папки или файлы как доступные только для чтения. Это право включает ReadData право, ReadExtendedAttributes право, ReadAttributes право и ReadPermissions право. |
ReadAndExecute | 131241 | Указывает право открывать и копировать папки или файлы как доступные только для чтения, а также запускать файлы приложений. Это право включает в себя право Read и право ExecuteFile. |
ReadAttributes | 128 | Указывает право на открытие и копирование атрибутов файловой системы из папки или файла. Например, это значение указывает право на просмотр даты создания или изменения файла. Это не включает право на чтение данных, расширенные атрибуты файловой системы или правила доступа и аудита. |
ReadData | 1 | Указывает право на открытие и копирование файла или папки. Это не включает право на чтение атрибутов файловой системы, расширенных атрибутов файловой системы или правил доступа и аудита. |
ReadExtendedAttributes | 8 | Указывает право на открытие и копирование расширенных атрибутов файловой системы из папки или файла. Например, это значение указывает право на просмотр сведений о авторе и содержимом. Это не включает право на чтение данных, атрибуты файловой системы или правила доступа и аудита. |
ReadPermissions | 131072 | Указывает право на открытие и копирование правил доступа и аудита из папки или файла. Это не включает право на чтение данных, атрибутов файловой системы и расширенных атрибутов файловой системы. |
Synchronize | 1048576 | Указывает, может ли приложение ожидать синхронизации дескриптора файла с завершением операции ввода-вывода. Это значение устанавливается автоматически при предоставлении доступа и автоматическом исключении при запрете доступа. |
TakeOwnership | 524288 | Указывает право изменить владельца папки или файла. Обратите внимание, что владельцы ресурса имеют полный доступ к такому ресурсу. |
Traverse | 32 | Указывает право на перечисление содержимого папки и запуск приложений, содержащихся в этой папке. |
Write | 278 | Указывает право создавать папки и файлы, а также добавлять или удалять данные из файлов. Это право включает WriteData право, AppendData право, WriteExtendedAttributes право и WriteAttributes право. |
WriteAttributes | 256 | Указывает право на открытие и запись атрибутов файловой системы в папку или файл. Это не включает возможность записи данных, расширенных атрибутов или правил доступа и аудита. |
WriteData | 2 | Указывает право на открытие и запись в файл или папку. Это не включает право открывать и записывать атрибуты файловой системы, расширенные атрибуты файловой системы или правила доступа и аудита. |
WriteExtendedAttributes | 16 | Указывает право на открытие и запись расширенных атрибутов файловой системы в папку или файл. Это не включает возможность записи данных, атрибутов или правил аудита и доступа. |
Примеры
В следующем примере перечисление FileSystemRights
используется для указания правила доступа и удаления правила доступа из файла. Чтобы запустить этот пример, необходимо указать допустимую учетную запись пользователя или группы.
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
Комментарии
Перечисление FileSystemRights указывает, какие действия файловой системы разрешены для определенной учетной записи пользователя и какие действия файловой системы проверяются для определенной учетной записи пользователя.
Используйте перечисление FileSystemRights при создании правила доступа с классом FileSystemAccessRule или при создании правила аудита с помощью класса FileSystemAuditRule.
Это перечисление содержит несколько подробных значений прав системы и несколько значений, которые являются сочетанием этих детализированных значений. Проще использовать такие сочетания значений, как FullControl
, Read
и Write
, а не указывать каждое значение компонента отдельно.
Права CreateDirectories
и CreateFiles
требуют права Synchronize
. Если при создании файла или каталога явно не задано Synchronize
значение, оно автоматически устанавливается для вас.