다음을 통해 공유


FileSystemSecurity 클래스

정의

파일 또는 디렉터리에 대한 액세스 제어 및 감사 보안을 나타냅니다.

public ref class FileSystemSecurity abstract : System::Security::AccessControl::NativeObjectSecurity
public abstract class FileSystemSecurity : System.Security.AccessControl.NativeObjectSecurity
[System.Security.SecurityCritical]
public abstract class FileSystemSecurity : System.Security.AccessControl.NativeObjectSecurity
type FileSystemSecurity = class
    inherit NativeObjectSecurity
[<System.Security.SecurityCritical>]
type FileSystemSecurity = class
    inherit NativeObjectSecurity
Public MustInherit Class FileSystemSecurity
Inherits NativeObjectSecurity
상속
파생
특성

예제

다음 코드 예제에서는 FileSecurity 클래스를 사용하여 파일에서 ACL(액세스 제어 목록) 항목을 추가한 다음 제거합니다. 이 예제를 실행하려면 유효한 사용자 또는 그룹 계정을 제공해야 합니다.

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

설명

FileSystemSecurity 클래스는 FileSecurityDirectorySecurity 클래스의 기본 클래스입니다. 이러한 클래스는 시스템 파일 또는 디렉터리에 대한 모든 액세스 권한을 나타내며 액세스 시도를 감사하는 방법을 정의합니다.

FileSystemSecurity 클래스는 규칙 집합으로 액세스 및 감사 권한을 나타냅니다. 각 액세스 규칙은 FileSystemAccessRule 개체로 표현되고 각 감사 규칙은 FileSystemAuditRule 개체로 표시됩니다.

FileSystemSecurity 클래스는 기본 Microsoft Windows 파일 보안 시스템의 추상화입니다. 이 시스템에서 각 파일 또는 디렉터리에는 파일 또는 디렉터리에 대한 액세스를 제어하는 DACL(임의 액세스 제어 목록)과 감사되는 액세스 제어 시도를 지정하는 SACL(시스템 액세스 제어 목록)이 있습니다. FileSystemAccessRuleFileSystemAuditRule 클래스는 ACL 및 SACL을 구성하는 ACE(액세스 제어 항목)의 추상화입니다.

FileSystemSecurity 클래스는 DACL 및 SACL에 대한 많은 세부 정보를 숨깁니다. ACE 순서 지정 또는 null DACLS에 대해 걱정할 필요가 없습니다.

다음 .NET 구현 종속 메서드를 사용하여 파일에서 ACL 정보를 추가하거나 검색합니다.

.NET 구현 규칙 추가 규칙 검색
.그물 FileSystemAclExtensions.SetAccessControl(FileInfo, FileSecurity) FileSystemAclExtensions.GetAccessControl(FileInfo)
.NET Framework FileInfo.SetAccessControl(FileSecurity) FileInfo.GetAccessControl()

속성

AccessRightType

FileSystemSecurity 클래스가 액세스 권한을 나타내는 데 사용하는 열거형을 가져옵니다.

AccessRulesModified

ObjectSecurity 개체와 연결된 액세스 규칙이 수정되었는지 여부를 지정하는 부울 값을 가져오거나 설정합니다.

(다음에서 상속됨 ObjectSecurity)
AccessRuleType

FileSystemSecurity 클래스가 액세스 규칙을 나타내는 데 사용하는 열거형을 가져옵니다.

AreAccessRulesCanonical

ObjectSecurity 개체와 연결된 액세스 규칙이 정식 순서인지 여부를 지정하는 부울 값을 가져옵니다.

(다음에서 상속됨 ObjectSecurity)
AreAccessRulesProtected

ObjectSecurity 개체와 연결된 DACL(임의 액세스 제어 목록)이 보호되는지 여부를 지정하는 부울 값을 가져옵니다.

(다음에서 상속됨 ObjectSecurity)
AreAuditRulesCanonical

ObjectSecurity 개체와 연결된 감사 규칙이 정식 순서인지 여부를 지정하는 부울 값을 가져옵니다.

(다음에서 상속됨 ObjectSecurity)
AreAuditRulesProtected

ObjectSecurity 개체와 연결된 SACL(시스템 액세스 제어 목록)이 보호되는지 여부를 지정하는 부울 값을 가져옵니다.

(다음에서 상속됨 ObjectSecurity)
AuditRulesModified

ObjectSecurity 개체와 연결된 감사 규칙이 수정되었는지 여부를 지정하는 부울 값을 가져오거나 설정합니다.

(다음에서 상속됨 ObjectSecurity)
AuditRuleType

FileSystemSecurity 클래스가 감사 규칙을 나타내는 데 사용하는 형식을 가져옵니다.

GroupModified

보안 개체와 연결된 그룹이 수정되었는지 여부를 지정하는 부울 값을 가져오거나 설정합니다.

(다음에서 상속됨 ObjectSecurity)
IsContainer

ObjectSecurity 개체가 컨테이너 개체인지 여부를 지정하는 부울 값을 가져옵니다.

(다음에서 상속됨 ObjectSecurity)
IsDS

ObjectSecurity 개체가 디렉터리 개체인지 여부를 지정하는 부울 값을 가져옵니다.

(다음에서 상속됨 ObjectSecurity)
OwnerModified

보안 개체의 소유자가 수정되었는지 여부를 지정하는 부울 값을 가져오거나 설정합니다.

(다음에서 상속됨 ObjectSecurity)
SecurityDescriptor

이 인스턴스의 보안 설명자를 가져옵니다.

(다음에서 상속됨 ObjectSecurity)

메서드

AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType)

지정된 액세스 권한, 액세스 제어 및 플래그를 사용하여 지정된 사용자에 대한 새 액세스 제어 규칙을 나타내는 FileSystemAccessRule 클래스의 새 인스턴스를 초기화합니다.

AddAccessRule(AccessRule)

지정된 액세스 규칙을 이 CommonObjectSecurity 개체와 연결된 DACL(임의 액세스 제어 목록)에 추가합니다.

(다음에서 상속됨 CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

지정된 ACL(액세스 제어 목록) 권한을 현재 파일 또는 디렉터리에 추가합니다.

AddAuditRule(AuditRule)

지정된 감사 규칙을 이 CommonObjectSecurity 개체와 연결된 SACL(시스템 액세스 제어 목록)에 추가합니다.

(다음에서 상속됨 CommonObjectSecurity)
AddAuditRule(FileSystemAuditRule)

지정된 감사 규칙을 현재 파일 또는 디렉터리에 추가합니다.

AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags)

지정된 사용자에 대해 지정된 감사 규칙을 나타내는 FileSystemAuditRule 클래스의 새 인스턴스를 초기화합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
GetAccessRules(Boolean, Boolean, Type)

지정된 보안 식별자와 연결된 액세스 규칙의 컬렉션을 가져옵니다.

(다음에서 상속됨 CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

지정된 보안 식별자와 연결된 감사 규칙의 컬렉션을 가져옵니다.

(다음에서 상속됨 CommonObjectSecurity)
GetGroup(Type)

지정된 소유자와 연결된 기본 그룹을 가져옵니다.

(다음에서 상속됨 ObjectSecurity)
GetHashCode()

기본 해시 함수로 사용됩니다.

(다음에서 상속됨 Object)
GetOwner(Type)

지정된 기본 그룹과 연결된 소유자를 가져옵니다.

(다음에서 상속됨 ObjectSecurity)
GetSecurityDescriptorBinaryForm()

ObjectSecurity 개체의 보안 설명자 정보를 나타내는 바이트 값 배열을 반환합니다.

(다음에서 상속됨 ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

ObjectSecurity 개체와 연결된 보안 설명자의 지정된 섹션에 대한 SDDL(보안 설명자 정의 언어) 표현을 반환합니다.

(다음에서 상속됨 ObjectSecurity)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

CommonObjectSecurity 개체와 연결된 DACL(임의 액세스 제어 목록)에 지정된 수정 사항을 적용합니다.

(다음에서 상속됨 CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

ObjectSecurity 개체와 연결된 DACL(임의 액세스 제어 목록)에 지정된 수정 사항을 적용합니다.

(다음에서 상속됨 ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

CommonObjectSecurity 개체와 연결된 SACL(시스템 액세스 제어 목록)에 지정된 수정 사항을 적용합니다.

(다음에서 상속됨 CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

ObjectSecurity 개체와 연결된 SACL(시스템 액세스 제어 목록)에 지정된 수정 사항을 적용합니다.

(다음에서 상속됨 ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

ObjectSecurity 개체와 연결된 보안 설명자의 지정된 섹션을 영구 스토리지에 저장합니다. 생성자와 지속 메서드에 전달된 includeSections 매개 변수의 값은 동일해야 합니다.

(다음에서 상속됨 ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

NativeObjectSecurity 개체와 연결된 보안 설명자의 지정된 섹션을 영구 스토리지에 저장합니다. 생성자와 지속 메서드에 전달된 includeSections 매개 변수의 값이 동일하도록 하는 것이 좋습니다.

(다음에서 상속됨 NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

NativeObjectSecurity 개체와 연결된 보안 설명자의 지정된 섹션을 영구 스토리지에 저장합니다. 생성자와 지속 메서드에 전달된 includeSections 매개 변수의 값은 동일해야 합니다.

(다음에서 상속됨 NativeObjectSecurity)
Persist(String, AccessControlSections)

NativeObjectSecurity 개체와 연결된 보안 설명자의 지정된 섹션을 영구 스토리지에 저장합니다. 생성자와 지속 메서드에 전달된 includeSections 매개 변수의 값은 동일해야 합니다.

(다음에서 상속됨 NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

NativeObjectSecurity 개체와 연결된 보안 설명자의 지정된 섹션을 영구 스토리지에 저장합니다. 생성자와 지속 메서드에 전달된 includeSections 매개 변수의 값은 동일해야 합니다.

(다음에서 상속됨 NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

지정된 IdentityReference연결된 모든 액세스 규칙을 제거합니다.

(다음에서 상속됨 ObjectSecurity)
PurgeAuditRules(IdentityReference)

지정된 IdentityReference연결된 모든 감사 규칙을 제거합니다.

(다음에서 상속됨 ObjectSecurity)
ReadLock()

읽기 액세스를 위해 이 ObjectSecurity 개체를 잠깁니다.

(다음에서 상속됨 ObjectSecurity)
ReadUnlock()

읽기 액세스를 위해 이 ObjectSecurity 개체의 잠금을 해제합니다.

(다음에서 상속됨 ObjectSecurity)
RemoveAccessRule(AccessRule)

CommonObjectSecurity 개체와 연결된 DACL(임의 액세스 제어 목록)에서 지정된 액세스 규칙과 동일한 보안 식별자 및 액세스 마스크를 포함하는 액세스 규칙을 제거합니다.

(다음에서 상속됨 CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

현재 파일 또는 디렉터리에서 일치하는 모든 ACL(액세스 제어 목록) 권한을 제거합니다.

RemoveAccessRuleAll(AccessRule)

CommonObjectSecurity 개체와 연결된 DACL(임의 액세스 제어 목록)에서 지정된 액세스 규칙과 동일한 보안 식별자가 있는 모든 액세스 규칙을 제거합니다.

(다음에서 상속됨 CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

현재 파일 또는 디렉터리에서 지정된 사용자에 대한 모든 ACL(액세스 제어 목록) 권한을 제거합니다.

RemoveAccessRuleSpecific(AccessRule)

CommonObjectSecurity 개체와 연결된 DACL(임의 액세스 제어 목록)에서 지정된 액세스 규칙과 정확히 일치하는 모든 액세스 규칙을 제거합니다.

(다음에서 상속됨 CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

현재 파일 또는 디렉터리에서 일치하는 단일 ACL(액세스 제어 목록) 권한을 제거합니다.

RemoveAuditRule(AuditRule)

CommonObjectSecurity 개체와 연결된 SACL(시스템 액세스 제어 목록)에서 지정된 감사 규칙과 동일한 보안 식별자 및 액세스 마스크를 포함하는 감사 규칙을 제거합니다.

(다음에서 상속됨 CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

현재 파일 또는 디렉터리에서 일치하는 모든 허용 또는 거부 감사 규칙을 제거합니다.

RemoveAuditRuleAll(AuditRule)

CommonObjectSecurity 개체와 연결된 SACL(시스템 액세스 제어 목록)에서 지정된 감사 규칙과 동일한 보안 식별자가 있는 모든 감사 규칙을 제거합니다.

(다음에서 상속됨 CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

현재 파일 또는 디렉터리에서 지정된 사용자에 대한 모든 감사 규칙을 제거합니다.

RemoveAuditRuleSpecific(AuditRule)

CommonObjectSecurity 개체와 연결된 SACL(시스템 액세스 제어 목록)에서 지정된 감사 규칙과 정확히 일치하는 모든 감사 규칙을 제거합니다.

(다음에서 상속됨 CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

현재 파일 또는 디렉터리에서 일치하는 단일 허용 또는 거부 감사 규칙을 제거합니다.

ResetAccessRule(AccessRule)

CommonObjectSecurity 개체와 연결된 DACL(임의 액세스 제어 목록)에서 모든 액세스 규칙을 제거한 다음 지정된 액세스 규칙을 추가합니다.

(다음에서 상속됨 CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

지정된 ACL(액세스 제어 목록) 권한을 현재 파일 또는 디렉터리에 추가하고 일치하는 모든 ACL 권한을 제거합니다.

SetAccessRule(AccessRule)

CommonObjectSecurity 개체와 연결된 DACL(임의 액세스 제어 목록)에서 지정된 액세스 규칙과 동일한 보안 식별자 및 한정자를 포함하는 모든 액세스 규칙을 제거한 다음 지정된 액세스 규칙을 추가합니다.

(다음에서 상속됨 CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

현재 파일 또는 디렉터리에 대해 지정된 ACL(액세스 제어 목록) 권한을 설정합니다.

SetAccessRuleProtection(Boolean, Boolean)

ObjectSecurity 개체와 연결된 액세스 규칙의 보호를 설정하거나 제거합니다. 상속을 통해 부모 개체에서 보호된 액세스 규칙을 수정할 수 없습니다.

(다음에서 상속됨 ObjectSecurity)
SetAuditRule(AuditRule)

CommonObjectSecurity 개체와 연결된 SACL(시스템 액세스 제어 목록)에서 지정된 감사 규칙과 동일한 보안 식별자 및 한정자를 포함하는 모든 감사 규칙을 제거한 다음 지정된 감사 규칙을 추가합니다.

(다음에서 상속됨 CommonObjectSecurity)
SetAuditRule(FileSystemAuditRule)

현재 파일 또는 디렉터리에 대해 지정된 감사 규칙을 설정합니다.

SetAuditRuleProtection(Boolean, Boolean)

ObjectSecurity 개체와 연결된 감사 규칙의 보호를 설정하거나 제거합니다. 상속을 통해 부모 개체에서 보호된 감사 규칙을 수정할 수 없습니다.

(다음에서 상속됨 ObjectSecurity)
SetGroup(IdentityReference)

ObjectSecurity 개체와 연결된 보안 설명자의 기본 그룹을 설정합니다.

(다음에서 상속됨 ObjectSecurity)
SetOwner(IdentityReference)

ObjectSecurity 개체와 연결된 보안 설명자의 소유자를 설정합니다.

(다음에서 상속됨 ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

지정된 바이트 값 배열에서 이 ObjectSecurity 개체의 보안 설명자를 설정합니다.

(다음에서 상속됨 ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

지정된 바이트 값 배열에서 이 ObjectSecurity 개체에 대한 보안 설명자의 지정된 섹션을 설정합니다.

(다음에서 상속됨 ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

지정된 SDDL(보안 설명자 정의 언어) 문자열에서 이 ObjectSecurity 개체의 보안 설명자를 설정합니다.

(다음에서 상속됨 ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

지정된 SDDL(Security Descriptor Definition Language) 문자열에서 이 ObjectSecurity 개체에 대한 보안 설명자의 지정된 섹션을 설정합니다.

(다음에서 상속됨 ObjectSecurity)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
WriteLock()

쓰기 액세스를 위해 이 ObjectSecurity 개체를 잠깁니다.

(다음에서 상속됨 ObjectSecurity)
WriteUnlock()

쓰기 액세스를 위해 이 ObjectSecurity 개체의 잠금을 해제합니다.

(다음에서 상속됨 ObjectSecurity)

적용 대상