Home » 컴퓨터잡담 » 레지스트리 권한 및 소유권을 설정할 수 있는 써드파티 툴 [SetACL]

레지스트리 권한 및 소유권을 설정할 수 있는 써드파티 툴 [SetACL]

레지스트리 편집기 아이콘
레지스트리 편집기 아이콘

개요

Microsoft Windows 에는 기본적으로 파일이나 폴더의 소유권 및 권한을 주기 위한 takeown.exe 와 icacls.exe 가 있다.

하지만 레지스트리에 대해서 레지스트리 키나 서브 키에 대한 소유권 및 권한을 줄 수 있는 툴은 Microsoft Windows 에 존재하지 않는다.

따라서 이를 써드파티 툴을 통해 써야 되는데 소개할 프로그램이 바로 SetACL 이다.

위 툴을 통해 레지스트리에 대한 키의 소유권 이나 권한을 설정할 수 있게 된다.


이 글을 작성한 계기?

현재 근무하고 있는 회사는 Active Directory 를 통해 Microsoft Edge 에 대한 브라우저 정책을 자동적으로 받아 레지스트리 키에 저장되어 정책적으로 제어되고 있는데 이 기능중에 내가 사용하지 않는 기능이 정책에 의해 제한하고 있어 제거하려고 했으나 삭제가 되지 않아 레지스트리 키에 대한 권한을 모두 제거하였더니 레지스트리 편집기에서도 편집이 불가능한 문제가 발생했었다.

해당 내용을 뒤늦게 찾아보니 Microsoft 문서에서 SID 가 걸려있는 레지스트리 키의 권한을 제거하면 UI 를 통해 다시 되돌릴 수 없다는 중요한 문구를 뒤늦게 보고 말았다.

DO NOT DELETE capability SIDS from either the Registry or file system permissions. Removing a capability SID from file system permissions or registry permissions may cause a feature or application to function incorrectly. After you remove a capability SID, you cannot use the UI to add it back.

레지스트리 또는 파일 시스템 권한에서 특성 SID 를  삭제하지 마십시오. 파일 시스템 권한 또는 레지스트리 권한에서 특성 SID 를 제거하면 응용 프로그램의 기능이 올바르게 작동하지 않을 수 있습니다. 특성 SID 를 제거한 이후에는 UI 를 통해 다시 추가할 수 없습니다.

참고 URL (영문) : https://learn.microsoft.com/en-us/troubleshoot/windows-server/windows-security/sids-not-resolve-into-friendly-names


특성 SID 가 뭘까?

대체적으로 특성 SID (capability SIDS) 는 대체적으로 다음과 같이 등록이 되어있을 것 이다.

S-1-15-3-1024-1065365936-1281604716-3511738428-1654721687-432734479-3232135806-4053264122-3456934681

Windows 8 이후부터 들어가지는 특성 SID 는 친숙한 형태(계정이나 도메인\계정)로 제공이 되지 않고 불변한 값 형태로 되어있는 고유한 식별 번호가 붙게 된다. Windows 의 구성요소나 Universal Windows 응용 프로그램에 있는 특수 리소스에 대한 엑세스 권한을 부여받는 제거해서는 안되는 유형이다. 이 SID 가 사라진 프로그램은 연결되어있던 리소스에 대해 엑세스가 거부된다.

즉, Windows 가 프로그램이나 기타 다른 리소스등에 접근하기 위해 사용하는 고유한 식별자로, 해당 SID 의 권한을 제거하거나 소유권에 포함시키지 않으면 해당 데이터에 접근할 수 없게 되는 것 이다.

이를 해결하기 위해 위에 간단하게 소개한 SetACL 을 이용해서 복구해보고자 한다.


SetACL 사용법

다운로드 링크

우선 SetACL 은 써드파티 툴 이므로 정식적으로 배포하는 사이트가 Microsoft 같은 공인된 사이트는 아니다. 다운로드 할 때 유효하게 배포하는 써드파티 배포 사이트에서 다운로드 받아 사용할 수 있다.

다운로드 링크 : https://helgeklein.com/download/


SetACL 사용하기

SetACL 은 다음과 같이 사용하여 소유권과 권한을 부여할 수 있다.

  • -on : 권한이나 소유권이 필요한 파일, 폴더 혹은 레지스트리 키 를 입력한다.
  • -ot : -on 매개변수로 입력한 항목의 특성을 입력한다. 예를들어 파일이나 폴더를 입력했다면 해당 값에는 file 을, 레지스트리 키 인 경우 reg 를 입력한다.
  • -actn : -on 매개변수로 입력한 항목을 어떻게 할 것인지 입력한다. 예를들어 소유권을 부여하고 싶다면 해당 값에는 setowner 를, 권한을 변경하고 싶다면 ace 를 입력한다.

자세한 내용 (영문) : https://helgeklein.com/setacl/documentation/command-line-version-setacl-exe/


SetACL 예제

SetACL 을 통해 소유권이나 권한을 부여해보자.

특정 레지스트리 키의 소유권을 부여하고 싶은 경우

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge (-on) 라는

레지스트리 키(-ot) 를

소유권(-actn) 을

Administrators 에게 부여(-ownr) 한다.

특정 레지스트리 키의 권한을 부여하고 싶은 경우

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge (-on) 라는

레지스트리 키(-ot) 를

권한(-ace) 를

Administrators 에게 (-ace n:Administrators)

전체 권한을 부여(p:full) 한다.


SetACL 이 정상적으로 동작한 경우

SetACL 성공 화면
SetACL 성공 화면

정상적으로 등록이 되면

SetACL finished successfully.

라고 표시되면서 소유권이나 권한이 부여된다.

레지스트리 서브키는?

레지스트리의 서브 키 까지 함께 소유권이나 권한을 부여하는 방법은 위 명령어에 모두 다음과 같은 매개변수를 넣어주면 하위 항목들도 동작하게 된다.

-rec Yes

위로 스크롤