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 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
Комментарии
Перечисление FileSystemRights указывает, какие действия файловой системы разрешены для определенной учетной записи пользователя и какие действия файловой системы проверяются для определенной учетной записи пользователя.
Используйте перечисление FileSystemRights при создании правила доступа с классом FileSystemAccessRule или при создании правила аудита с классом FileSystemAuditRule .
Это перечисление содержит несколько значений прав детализированной системы и несколько значений, которые являются сочетанием этих детализированных значений. Проще использовать такие сочетания значений, как FullControl
, Read
и Write
, а не указывать каждое значение компонента отдельно.
Права CreateDirectories
и CreateFiles
права требуют права Synchronize
. Если при создании файла или каталога явно не задано Synchronize
значение, оно автоматически задается автоматически.