HOWTO · PowerShell
PowerShell에서 특정 사용자에 대한 ACL 가져오기 방법
이 튜토리얼은 PowerShell에서 특정 사용자에 대한 권한을 확인하기 위해 get-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 환경을 유지하는 데 소중한 도구를 갖추게 됩니다.