PowerShell을 사용하여 폴더에 대한 권한을 재귀적으로 설정
ACL(액세스 제어 목록)은 파일 또는 리소스에 액세스하기 위한 사용자 권한 및 사용자 그룹을 나타냅니다. 액세스 제어 항목(ACE)의 정렬된 목록입니다.
ACL의 각 ACE는 허용, 거부 또는 감사되는 액세스 권한을 정의합니다. 개체의 보안 설명자에는 DACL과 SACL이라는 두 가지 유형의 ACL이 있을 수 있습니다.
Windows에서 NTFS 권한으로 작업할 때 폴더에 대한 권한을 재귀적으로 변경해야 할 수 있습니다. GUI는 PowerShell 스크립트보다 시간이 많이 걸리고 복잡합니다.
이 자습서에서는 PowerShell을 사용하여 폴더에 대한 권한을 재귀적으로 설정하는 방법을 알려줍니다.
PowerShell을 사용하여 재귀적으로 폴더에 대한 권한 얻기
PowerShell에서 ACL 권한을 관리하기 위한 주로 Get-Acl
및 Set-Acl
의 두 가지 cmdlet이 있습니다.
Get-Acl
cmdlet은 파일 또는 리소스의 ACL(액세스 제어 목록)이 포함된 보안 설명자를 가져옵니다.
Get-Acl
은 C:\New
디렉터리의 보안 설명자를 가져옵니다.
Get-Acl C:\New
출력:
Directory: C:\
Path Owner Access
---- ----- ------
New DelftStack\rhntm BUILTIN\Administrators Allow FullControl...
Get-Acl
cmdlet은 모든 디렉터리 및 하위 디렉터리 권한을 반환하지 않습니다. 폴더 권한을 재귀적으로 얻으려면 Get-ChildItem
cmdlet을 -Recurse
매개 변수와 함께 사용해야 합니다.
Get-ChildItem "C:\pc" -Recurse | Get-ACL
PowerShell을 사용하여 재귀적으로 폴더에 대한 권한 설정
Set-Acl
은 파일 또는 리소스의 보안 설명자를 변경합니다. -AclObject
매개변수의 값으로 제공된 보안 설명자를 적용합니다.
다음 명령은 C:\New
디렉터리의 보안 설명자에서 C:\pc
디렉터리의 보안 설명자로 값을 복사합니다.
$new = Get-Acl -Path "C:\New"
Set-Acl -Path "C:\pc" -AclObject $new
첫 번째 명령은 C:\New
디렉토리의 보안 설명자를 가져와 $new
변수에 저장합니다. 두 번째 명령에서 Set-Acl
은 C:\New
디렉토리의 ACL 값을 $new
의 값으로 변경합니다.
다음 스크립트는 새 ACL 규칙을 폴더의 기존 권한에 재귀적으로 추가합니다.
$acl = Get-Acl -Path "C:\pc"
$ace = New-Object System.Security.Accesscontrol.FileSystemAccessRule ("testuser", "Read", "Allow")
$acl.AddAccessRule($ace)
Set-Acl -Path "C:\pc" -AclObject $acl
첫 번째 명령은 기존 ACL 규칙을 가져옵니다. 두 번째 명령은 적용할 새 FileSystemAccessRule
을 생성합니다.
세 번째 명령은 폴더에 대한 기존 권한에 새 ACL 규칙을 추가합니다. 네 번째 명령은 Set-Acl
을 사용하여 새 ACL을 폴더에 적용합니다.
다음 명령을 사용하여 모든 사용자의 권한을 볼 수 있습니다.
(Get-ACL -Path "C:\pc").Access | Format-Table IdentityReference,FileSystemRights,AccessControlType
출력:
IdentityReference FileSystemRights AccessControlType
----------------- ---------------- -----------------
DelftStack\rhntm FullControl Allow
DelftStack\testuser Read, Synchronize Allow
시스템 관리자는 프로세스를 더 빠르고 쉽게 만들기 위해 스크립트를 사용하여 많은 폴더와 파일에 대한 NTFS 권한을 구성합니다. 이 문서가 PowerShell을 사용하여 재귀적으로 폴더에 대한 권한을 설정하는 방법을 이해하는 데 도움이 되었기를 바랍니다.
PowerShell의 자세한 NTFS 권한 유형은 이 게시물을 참조하세요.