PowerShell에서 특정 사용자에 대한 ACL 가져오기 방법

  1. PowerShell에서 Get-Acl 소개
  2. 특정 사용자에 대한 ACL 검색
  3. Get-Acl 출력 해석
  4. 실용적인 예제
  5. PowerShell에서 특정 사용자에 대한 권한 확인을 위해 Get-Acl 사용하기
  6. 결론
PowerShell에서 특정 사용자에 대한 ACL 가져오기 방법

PowerShell은 강력한 자동화 도구로, Windows 환경의 다양한 측면을 관리하는 수많은 cmdlet을 제공합니다.

기본 cmdlet 중 하나는 Get-Acl로, 이는 접근 제어 목록(ACL)을 의미합니다. 이 cmdlet을 통해 관리자는 파일, 폴더 또는 레지스트리 키의 보안 설명자(권한)를 검색하고 검사할 수 있습니다.

이 문서에서는 특정 사용자를 위한 Get-Acl 사용의 복잡성에 대해 탐구할 것입니다. 우리는 구문, 옵션 및 실용적인 예제를 다루어 Windows 환경에서 접근 권한을 효과적으로 관리하는 데 도움을 줄 것입니다.

PowerShell에서 Get-Acl 소개

Get-Acl은 파일, 디렉토리 또는 레지스트리 키의 접근 제어 목록(ACL)을 검색하는 데 사용되는 PowerShell cmdlet입니다. ACL은 객체에 액세스할 수 있는 사람과 그 수준의 액세스를 정의하는 접근 제어 항목(ACE)의 목록을 포함합니다.

권한을 이해하고 관리하는 것은 안전하고 조직된 컴퓨팅 환경을 유지하는 데 중요합니다. Get-Acl은 관리자가 권한을 프로그래밍 방식으로 검사하고 수정할 수 있는 수단을 제공하여 관리자를 지원합니다.

기본 구문:

Get-Acl [-Path] <String[]> [-Audit] [-AllCentralAccessPolicies] [-Directory] [-Filter <String>] [-Include <String[]>] [-LiteralPath <String[]>] [-Owner] [-Access <String>] [-UseTransaction] [<CommonParameters>]

일반 매개변수:

-Path ACL을 검색할 항목의 경로를 지정합니다.
-Audit 감사 규칙을 검색합니다.
-Owner 소유자 정보를 검색합니다.
-Access 특정 유형의 접근 규칙만 검색합니다.
-UseTransaction cmdlet에 거래 사용을 허용합니다.
-InputObject 특정 객체의 보안 설명자를 제공합니다.
-LiteralPath 리소스 또는 파일의 경로를 지정하는 데 사용됩니다. 이 매개변수의 값은 입력된 그대로 사용해야 합니다.

고급 옵션:

-AllCentralAccessPolicies 모든 중앙 접근 정책을 검색합니다.
-Directory 항목이 디렉토리임을 지정합니다.
-Filter 지정된 기준에 따라 결과를 필터링합니다.
-Include 지정된 항목만 검색합니다.
-Exclude 특정 항목을 생략합니다. 여기서는 경로를 제공해야 합니다.

특정 사용자에 대한 ACL 검색

Path 매개변수 사용

특정 사용자에 대한 ACL을 검색하는 가장 간단한 방법은 항목(파일, 디렉토리 또는 레지스트리 키)의 경로와 함께 Path 매개변수를 사용하는 것입니다.

Get-Acl -Path 'C:\Example\File.txt'

Where-Object로 사용자 지정

특정 사용자에 대한 결과를 필터링하려면 Get-Acl과 함께 Where-Object cmdlet을 사용할 수 있습니다. 이를 통해 원하는 사용자와 관련된 ACE만 선택할 수 있습니다.

Get-Acl -Path 'C:\Example\File.txt' | Where-Object { $_.Access | Where-Object { $_.IdentityReference -eq 'DOMAIN\User' } }

코드는 C:\Example\File.txt 파일의 ACL 내에서 사용자의 신원 'DOMAIN\User'와 관련된 특정 접근 규칙을 찾고 있습니다. 일치하는 규칙이 있을 경우 출력에 표시되며, 그렇지 않으면 출력이 비어 있습니다.

Get-Acl 출력 해석

접근 규칙

Get-Acl의 출력에는 접근 규칙에 대한 정보가 포함됩니다. 각 규칙은 사용자 또는 그룹, 접근 유형(예: 읽기, 쓰기), 그리고 해당 접근을 허용할지 거부할지에 대한 정보를 명시합니다.

감사 규칙

-Audit 매개변수가 사용되면 감사 규칙도 포함됩니다. 이 규칙은 특정 사용자 또는 그룹에 대해 어떤 유형의 접근을 감사해야 하는지를 명시합니다.

소유자 및 그룹

Get-Acl은 또한 항목의 소유자와 이에 연결된 그룹에 대한 정보를 검색할 수 있습니다.

실용적인 예제

예제 1: 파일에 대한 ACL 검색

아래 명령은 C:\Example\File.txt에 위치한 파일의 접근 제어 목록(ACL)을 검색합니다. 이 명령은 해당 특정 파일과 관련된 권한 및 접근 규칙에 대한 정보를 반환합니다.

Get-Acl -Path 'C:\Example\File.txt'

예제 2: 디렉토리에 대한 ACL 가져오기

아래 명령은 위 명령과 동일하게 작동하지만 다른 디렉토리에 대한 ACL을 검색합니다.

Get-Acl -Path 'C:\Example\Directory'

예제 3: 레지스트리 키 권한 확인

아래 명령은 HKLM:\SOFTWARE\ExampleKey에 위치한 레지스트리 키의 접근 제어 목록(ACL)을 검색합니다. 이 명령은 해당 특정 레지스트리 키와 관련된 권한 및 접근 규칙에 대한 정보를 반환합니다.

Get-Acl -Path 'HKLM:\SOFTWARE\ExampleKey'

예제 4: 접근 유형으로 필터링하기:

-Access 매개변수를 사용하여 특정 유형의 접근 규칙(예: 읽기, 쓰기)만 검색할 수 있습니다.

Get-Acl -Path 'C:\Example\File.txt' -Access Read, Write

예제 5: 출력 형식 지정하기:

Format-Table 또는 Format-List와 같은 cmdlet을 사용하여 출력을 더 읽기 쉽게 형식화할 수 있습니다.

Get-Acl -Path 'C:\Example\File.txt' | Format-Table -Property Path, AccessToString

PowerShell에서 특정 사용자에 대한 권한 확인을 위해 Get-Acl 사용하기

때때로 특정 사용자의 권한을 확인해야 합니다. 이는 특정 파일에 대한 접근을 제어하는 등의 다양한 목적으로 필요합니다. PowerShell의 도움으로 파일에 대한 접근 권한을 쉽게 확인할 수 있습니다.

아래는 시스템 관리자에 대한 권한 상태를 확인하기 위한 PowerShell 스크립트입니다.

Get-Acl g:\ | Select-Object -ExpandProperty Access | Where-Object identityreference -EQ "BUILTIN\Administrators"

이 코드는 g:\에 위치한 디렉토리에 대한 접근 제어 정보를 검색한 후, "Administrators" 그룹에 대한 접근 규칙만 표시하도록 필터링합니다. 이는 특정 디렉토리의 권한을 감사하거나 관리하는 데 유용할 수 있습니다.

위 코드를 실행한 결과는 g:\에 위치한 디렉토리에 대해 "Administrators" 그룹에 특별히 할당된 접근 규칙 목록이 될 것입니다. 이 출력에는 부여된 권한, 권한이 적용되는 신원 및 기타 관련 정보에 대한 세부정보가 포함될 것입니다.

FileSystemRights  : 268435456
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited       : False
InheritanceFlags  : ContainerInherit, ObjectInherit
PropagationFlags  : InheritOnly

FileSystemRights  : FullControl
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited       : False
InheritanceFlags  : None
PropagationFlags  : None

결론

Get-Acl은 Windows 환경 내에서 권한을 관리하는 데 중요한 역할을 하는 강력한 cmdlet입니다. 그 구문을 이해하고 다양한 매개변수를 활용함으로써 관리자는 접근 제어 정보를 효율적으로 검색하고 분석할 수 있습니다.

이 지식은 안전하고 조직된 컴퓨팅 환경을 유지하는 데 매우 중요합니다.

권한을 변경할 때는 항상 주의하고, ACL을 수정하기 전에 적절한 백업을 항상 마련해 두세요. Get-Acl을 PowerShell 도구로 사용하여 안전하고 잘 관리되는 Windows 환경을 유지하는 데 소중한 도구를 갖추게 됩니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

관련 문장 - PowerShell Script