윈도우 SID란? 계정과 권한을 구분하는 보안 식별자

윈도우는 계정 이름이 아닌 S-1-5-로 시작하는 SID를 기준으로 사용자와 그룹 등의 보안 주체를 구분한다. 이 글에서는 SID를 구성하는 식별자 기관과 Machine SID 및 RID의 의미, NT Authority의 잘 알려진 SID를 살펴본다. 또한 whoami 명령으로 현재 계정의 SID를 확인하는 방법과 삭제한 계정의 SID가 공유 폴더 권한에 남아 있을 때의 처리 방법을 설명한다.

윈도우는 다중 사용자용 운영 체계이다

PC를 나 혼자만 사용하고 있다고 해서 윈도우가 단일 사용자 환경이라고 생각하면 곤란하다. 윈도우는 본래 다중 사용자 운영 체계로 설계되었다. 사용자가 직접 생성한 계정은 물론이고, 시스템이 동작하기 위해 자동으로 생성되는 여러 서비스 계정들과 그룹들까지 포함해 윈도우 내부에는 다양한 사용자가 존재한다.

Windows 사용자 계정 컨트롤에서 Rufus의 장치 변경 권한을 요청하는 화면
관리자 권한 확인 창
Microsoft Edge 바로 가기 우클릭 메뉴에서 관리자 권한으로 실행 항목을 선택할 수 있는 화면
관리자 권한으로 실행

여기서 사용자란 간단히 말해 계정(ID)을 의미한다. 각각의 계정은 서로 다른 권한을 가지며 시스템에서 작업의 실행을 허용하거나 거부하는 기준이 되는 보안 주체의 역할을 한다. 설치 후 로그인 화면이 존재하는 이유도, 프로그램을 설치할 때 UAC가 나타나거나 관리자 권한으로 실행이라는 메뉴가 따로 존재하는 것도 모두 이러한 구조를 통해 권한을 관리하기 때문이다. 나 혼자 쓰는 PC처럼 보일지라도 내부적으로는 여러 계정과 권한이 서로 구분되어 있으며, 윈도우는 이를 바탕으로 보안 정책을 적용한다.

실제로 컴퓨터 관리의 로컬 사용자 및 그룹이나 PowerShell의 Get-LocalUser 명령을 통해 확인해 보면, 내가 생성하지 않은 사용자 계정과 그룹이 존재하고 있음을 알 수 있다.

Windows 컴퓨터 관리의 로컬 사용자 계정 목록에 Administrator, DefaultAccount, Guest 및 WDAGUtilityAccount가 표시된 화면
Windows 로컬 사용자 계정 목록
Windows 컴퓨터 관리에 Administrators, Users, Remote Desktop Users 등 로컬 그룹 목록이 표시된 화면
Windows 로컬 그룹과 권한 목록

SID란 무엇인가?

여기서 중요한 점은, 우리가 계정을 구분할 때 사용하는 것은 ID이지만 윈도우가 실제로 사용하는 것은 SID(보안 식별자)라는 것이다. 윈도우를 사용하다 보면 S-1-5-로 시작하는 이상한 문자열이 가끔 튀어나오는 것을 본 적이 있을 것이다. 이 문자열이 바로 SID이다.

윈도우에서 계정을 생성할 때 사용자는 사용할 ID와 암호를 입력한다. 이때 윈도우는 생성된 계정에 무작위로 생성된 정보를 이용해 고유한 SID를 할당해 준다.

만약 사용자가 DectENG라는 ID의 계정을 생성했다고 하면 윈도우는 이 계정에 대한 고유 SID를 생성한다. 그리고 계정을 삭제한 다음, 똑같이 DectENG라는 ID의 계정을 다시 생성하면 윈도우는 새롭게 만들어진 DectENG 계정에 대해 새로운 고유 SID를 생성한다. 즉, 사용자가 사용하는 ID만 놓고 보면 같게 보여도, 실제로는 새롭게 생성된 다른 계정이 된다는 뜻이다.

반대의 경우로, 만약 ID를 변경했다고 하더라도 고유 SID는 변경되지 않는다. 사용자에게는 다른 계정처럼 느껴지겠으나, 윈도우 입장에서는 여전히 동일한 계정인 것이다.

결론적으로 SID는 윈도우가 실제로 사용자를 구분하는 데 사용하는 기준이다. 로그 기록, 파일 접근 권한, 그룹 정책, 보안 설정 등이 모두 SID를 기반으로 동작하는 이유도 바로 여기에 있다.

SID의 구조

SID는 단순한 숫자 나열처럼 보이지만, 실제로는 각 위치마다 명확한 의미가 담겨 있다. 예를 들어 아래와 같은 형태의 SID가 있다고 하자.

S-1-5-21-1004336348-1177238915-682003330-512

이 문자열을 하나씩 뜯어보면 다음과 같다. SID는 맨 앞의 S로 시작하며, 이 문자열이 보안 식별자임을 나타낸다. 그 뒤에는 SID의 버전(대부분 1), SID를 발급한 식별자 기관(Identifier Authority), 해당 컴퓨터 또는 도메인을 대표하는 식별자, 마지막으로 해당 사용자나 그룹을 구분하는 RID가 순서대로 붙는다.

SID 구성 요소
값의미
SSID 문자열임을 나타냄
1SID 구조의 버전(Revision Level)
5식별자 기관(Identifier Authority)
21-1004336348-1177238915-682003330도메인 식별자
512RID — 이 예에서는 Domain Admins 그룹

도메인 식별자는 Active Directory 환경에서만 존재할 것 같은 이름이지만, 로컬 PC에서도 비슷한 개념이 존재한다. 윈도우는 설치할 때 시스템 자체에 고유한 Machine SID를 생성하며, 일반적인 로컬 사용자와 로컬 그룹의 SID는 이 Machine SID에 각각의 RID가 붙는 구조로 이루어진다. 즉, 같은 PC에서 생성된 로컬 계정은 앞부분이 동일하고 끝의 RID가 서로 다르게 나타난다.

RID는 하나의 컴퓨터 또는 도메인 안에서 각 사용자와 그룹을 구분하는 고유한 번호이다. 계정을 삭제한 다음 같은 ID로 다시 생성하더라도 이전 RID가 재사용되는 것이 아니라 새로운 RID가 부여된다.

식별자 기관(Identifier Authority)

SID 구조의 버전에 이어 식별자 기관(Identifier Authority)이 표시된다. 식별자 기관이란 특정한 유형의 SID를 발급할 수 있는 최상위 기관을 의미한다. 간단히 말하면 SID를 발급하는 주체라고 생각해도 되겠다. 윈도우를 사용할 경우 볼 수 있는 대부분의 식별자 기관은 5, 즉 SECURITY_NT_AUTHORITY일 것이다.

S-1-0
NULL Authority
S-1-1
WORLD Authority(모든 사용자)
S-1-2
LOCAL Authority
S-1-3
CREATOR Authority
S-1-5
NT Authority(가장 흔히 볼 수 있는 범주)
S-1-15
Application Package Authority(UWP·AppX 관련)
S-1-16
Mandatory Label Authority(무결성 수준)
S-1-18
Authentication Authority

NT Authority의 잘 알려진 SID들

윈도우 시스템(NT)은 운영체제에서 공통으로 사용되는 여러 계정과 그룹 및 로그온 유형을 NT Authority 아래에 구성한다. 이 범주에는 윈도우 시스템에서 특정한 역할이나 조건을 나타내는 여러 잘 알려진 SID(Well-known SID)가 존재한다. 인증된 사용자, 시스템 계정, 서비스 로그온 및 원격 데스크톱 사용자 등이 여기에 속한다.

S-1-5-2
Network Logon Users
S-1-5-4
Interactive Logon Users
S-1-5-5-X-Y
Logon Session SID(로그온 세션마다 값이 달라짐)
S-1-5-6
Service Logon Users
S-1-5-11
Authenticated Users
S-1-5-13
Terminal Services를 통해 로그인한 사용자
S-1-5-14
Remote Interactive Logon
S-1-5-18
Local System(운영체제 자체)
S-1-5-19
Local Service
S-1-5-20
Network Service
S-1-5-32-555
Remote Desktop Users 로컬 그룹
S-1-5-21-도메인-500
Administrator 계정
S-1-5-21-도메인-501
Guest 계정

여기서 도메인이라고 표시한 부분은 Active Directory 환경에서는 실제 도메인 식별자를 의미하지만, 로컬 컴퓨터에서는 고유한 Machine SID가 이 위치를 대신한다. 따라서 로컬 Administrator 계정도 S-1-5-21-Machine SID-500과 같은 형식을 가진다.

지금 내 계정의 SID 확인하기

현재 로그인한 계정의 SID를 확인하는 가장 간단한 방법은 명령 프롬프트나 PowerShell에서 아래의 명령을 실행하는 것이다.

whoami /user
PowerShell에서 whoami /user 명령으로 현재 사용자 이름과 SID를 확인한 화면
whoami /user를 이용한 SID 확인

이 외에 함께 사용할 수 있는 옵션은 다음과 같다.

  • /groups : 현재 계정의 액세스 토큰에 포함된 그룹 목록 표시
  • /priv : 현재 계정의 액세스 토큰에 포함된 권한 표시
  • /all : 사용자 이름과 SID, 그룹 및 권한 정보를 한 번에 출력

FAQ

S-1-5-로 시작하는 문자열이 자주 보이는데 이 정체는?
S-1-5-로 시작하는 문자열은 윈도우가 사용자와 그룹 및 시스템 계정 등의 보안 주체를 구분하기 위해 사용하는 SID이다.
공유 폴더 권한에 삭제한 사용자의 SID가 남아 있는데 삭제해도 되는가?
삭제한 계정의 SID가 접근 제어 목록에 남아 있는 것이라면 일반적으로 삭제해도 된다. 계정 이름 대신 SID만 표시되는 것은 윈도우가 해당 SID에 대응하는 계정을 더 이상 찾지 못한다는 의미다. 다만 도메인 연결 문제로 계정 이름을 일시적으로 해석하지 못하는 경우도 있으므로 실제로 삭제된 계정인지 먼저 확인해야 한다. 공유 폴더는 공유 권한과 NTFS 권한이 별도로 적용될 수 있으므로 두 위치를 모두 확인하고, 필요한 경우 icacls로 기존 권한을 백업한 다음 제거하는 것이 안전하다.
SID는 계정 이름(ID)과 어떻게 다른가?
계정 이름은 사용자가 계정을 알아보기 위한 표시용 이름이며 변경할 수 있다. 반면 SID는 운영체제가 계정을 식별하기 위해 부여하는 고유 값으로, 계정 이름을 바꾸더라도 변경되지 않는다. 윈도우가 권한을 확인할 때 실제로 사용하는 기준은 계정 이름이 아니라 SID이다.
SID는 어떻게 생성되는가?
일반적인 로컬 사용자 계정의 SID는 컴퓨터를 식별하는 Machine SID와 각 계정을 구분하는 RID를 결합해 만들어진다. Machine SID에는 시스템을 구분하기 위해 무작위로 생성되는 정보가 포함되고, RID는 계정이나 그룹을 생성할 때마다 새롭게 부여된다.
계정을 삭제한 뒤 같은 이름으로 다시 만들면 SID도 같아지는가?
아니다. 동일한 이름으로 계정을 다시 만들어도 새로운 SID가 부여된다. 윈도우는 계정 이름이 아니라 SID를 기준으로 사용자를 구분하기 때문에, 이름이 같더라도 내부적으로는 완전히 새로운 계정으로 인식한다.
Administrator 계정의 SID는 고정되어 있는가?
전체 SID가 모든 시스템에서 동일한 것은 아니다. 기본 Administrator 계정에는 RID 500이 사용되지만, 그 앞에 붙는 컴퓨터 또는 도메인 SID는 시스템마다 다르다. 따라서 기본 Administrator 계정은 일반적으로 S-1-5-21-컴퓨터 또는 도메인 식별자-500 형태의 SID를 가진다.
현재 로그인한 계정의 SID는 어떻게 확인하는가?
명령 프롬프트나 PowerShell에서 whoami /user를 실행하면 현재 로그인한 계정의 이름과 SID를 확인할 수 있다. whoami /groups는 액세스 토큰에 포함된 그룹을, whoami /priv는 권한을, whoami /all은 사용자와 그룹 및 권한 정보를 함께 표시한다.
SID가 달라지면 어떤 문제가 생기는가?
SID가 다르면 윈도우는 서로 다른 보안 주체로 인식한다. 따라서 기존 계정을 삭제하고 같은 이름으로 다시 만든 계정은 기존 파일 권한, 서비스 권한 및 작업 스케줄러 권한을 자동으로 이어받지 못한다. 기존 SID에 직접 연결된 접근 제어 항목은 새 계정과 연결되지 않으며, 계정 이름 대신 확인할 수 없는 SID로 표시될 수도 있다.
SID를 임의로 수정하거나 원하는 값으로 바꿀 수 있는가?
일반적인 계정 관리 방법으로는 변경할 수 없다. SID는 계정과 권한을 연결하는 핵심 식별자이므로 변경을 전제로 설계되지 않았다. SID를 비정상적인 방법으로 조작하면 기존 접근 권한이 끊어지거나 시스템과 어플리케이션이 정상적으로 동작하지 않을 수 있다.
Machine SID는 무엇이며 사용자 SID와 어떤 관계가 있는가?
Machine SID는 해당 윈도우 시스템을 구분하는 컴퓨터 SID이다. 일반적인 로컬 사용자와 로컬 그룹의 SID는 Machine SID를 공통된 앞부분으로 사용하고, 마지막에 각 계정이나 그룹을 구분하는 RID가 붙는다. 따라서 같은 컴퓨터에서 생성된 로컬 계정은 SID의 앞부분이 같고 마지막 RID가 서로 다르게 나타난다.
도메인 환경의 SID는 로컬 SID와 어떻게 다른가?
로컬 계정과 그룹의 SID는 해당 컴퓨터의 로컬 보안 기관이 발급하지만, 도메인 계정과 그룹의 SID는 Active Directory 도메인의 보안 기관이 발급한다. 도메인 계정은 다른 PC에서 로그인하더라도 동일한 SID를 사용하므로 도메인 전체에서 일관된 접근 제어를 적용할 수 있다.

갱신 내역

  • — 최초 게시
  • — 수정 및 주소 이전 (https://www.EQMaker.kr/)