FileSystemRights 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
액세스 및 감사 규칙을 만들 때 사용할 액세스 권한을 정의합니다.
이 열거형은 멤버 값의 비트 조합을 지원합니다.
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 | 애플리케이션이 파일 핸들이 I/O 작업의 완료와 동기화될 때까지 기다릴 수 있는지 여부를 지정합니다. 이 값은 액세스를 허용할 때 자동으로 설정되고 액세스를 거부할 때 자동으로 제외됩니다. |
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 열거형은 특정 사용자 계정에 대해 허용되는 파일 시스템 작업과 특정 사용자 계정에 대해 감사되는 파일 시스템 작업을 지정합니다.
FileSystemAccessRule 클래스를 사용하여 액세스 규칙을 만들거나 FileSystemAuditRule 클래스를 사용하여 감사 규칙을 만들 때 FileSystemRights 열거형을 사용합니다.
이 열거형에는 여러 세분화된 시스템 권한 값과 이러한 세분화된 값의 조합인 여러 값이 포함됩니다. 각 구성 요소 값을 개별적으로 지정하는 대신 FullControl
, Read
및 Write
같은 조합 값을 사용하는 것이 더 쉽습니다.
CreateDirectories
및 CreateFiles
권한에는 Synchronize
권한이 필요합니다. 파일 또는 디렉터리를 만들 때 Synchronize
값을 명시적으로 설정하지 않으면 자동으로 설정됩니다.
적용 대상
.NET