Microsoft/Windows Server 2003
사용자 계정에 대해서
장성한군사
2007. 7. 7. 16:31
MS에서 계정이란 크게 세 종류로 이야기 할 수 있다.
1.사용자 계정
2.컴퓨터 계정
3.그룹 계정 이다. 각 계정들은 시스템에 로그온 할때, 공유파일이나 폴더에 접근 할때 등등
사용된다. 그래서 이 계정들이 불법으로 노출된다면 보안의 문제가 될 수 있다.
본격적으로 사용자 계정에 대해서 알아보자.
1-1.사용자 계정은 윈도우에서 사용자 정의에 대한 모든 정보로 구성된 하나의 개체이다.
1-1-1.사용자 계정은 Local System의 SAM에서와 AD환경에서 만들고 관리 할 수 있다.
사용자 계정 --로컬 사용자 (SAM)
--도메인 사용자 (NTDS.dit)에 각각 저장 되어 진다.
어떤 환경이든 사용자 계정을 생성하면 보안 식별자(SID-Securiry IDentifier)가 할당이 되어진다.
SID는 절대 재 사용되지 않는다는 특징을 가지고 있다.
사용자 계정을 생성한 후 특정 자원(파일 또는 폴더)에 허가를 할당하면 된다.
할당된 사용자을 제거한 후 똑 같은 이름으로 사용자를 생성한다 해도 SID가 다르기 때문에 전에 할당된
파일이나 폴더에 접근을 할 수 없게 된다. 자 그럼 사용자마다 어떻게 SID가 할당 되었는지 보자.
1-2.시스템 사용자의 이름과 SID에 대한 쿼리를 WMI를 사용하여 볼 수 있다.
wmic:root\cli>sysaccount get name,sid
1-3.일반 사용자 계정도 보자
1-4. SID(Security IDentifier) 무엇인가?
SID란 대한민국 사람이라면 다 가지고 있는 주민번호와 같다고 생각해도 된다.
즉 이름은 같을 수 있지만 주민번호는 같을 수 없다. 라는 사실과 잘 부합이된다.
사용자 계정을 생성할때마다 생성되는 SID는 이런 구조로 되어있다.
SID=DomainID + RID(Relative ID)로 되어 있어서 한 시스템에서 사용자을 생성하면
1-4-3.윈도우 2003 서버에서는 사용자 이름을 20자까지 인식할 수 있다. 그리고 " /\[]:;|=,+*?<>이와 같은 특수 문자를 사용해서는 안된다. 또 대소문자를 식별하지는 않지만 만들때 대소문자을 혼합하여 생성했다면 계정이름은 Case-Retained된다.
아래그림은 첫번째는 20자, 두번째는 21자 다.
1-5.사용자 계정 다음과 같은 용도로 사용할 수 있다.
1-5-1.로그온 할때
1-5-2.프로세스나 서비스를 실행 할때
1-5-3.자원에 접근 사용 권한을 부여할때
1.사용자 계정
2.컴퓨터 계정
3.그룹 계정 이다. 각 계정들은 시스템에 로그온 할때, 공유파일이나 폴더에 접근 할때 등등
사용된다. 그래서 이 계정들이 불법으로 노출된다면 보안의 문제가 될 수 있다.
본격적으로 사용자 계정에 대해서 알아보자.
1-1.사용자 계정은 윈도우에서 사용자 정의에 대한 모든 정보로 구성된 하나의 개체이다.
1-1-1.사용자 계정은 Local System의 SAM에서와 AD환경에서 만들고 관리 할 수 있다.
사용자 계정 --로컬 사용자 (SAM)
--도메인 사용자 (NTDS.dit)에 각각 저장 되어 진다.
어떤 환경이든 사용자 계정을 생성하면 보안 식별자(SID-Securiry IDentifier)가 할당이 되어진다.
SID는 절대 재 사용되지 않는다는 특징을 가지고 있다.
사용자 계정을 생성한 후 특정 자원(파일 또는 폴더)에 허가를 할당하면 된다.
할당된 사용자을 제거한 후 똑 같은 이름으로 사용자를 생성한다 해도 SID가 다르기 때문에 전에 할당된
파일이나 폴더에 접근을 할 수 없게 된다. 자 그럼 사용자마다 어떻게 SID가 할당 되었는지 보자.
1-2.시스템 사용자의 이름과 SID에 대한 쿼리를 WMI를 사용하여 볼 수 있다.
wmic:root\cli>sysaccount get name,sid
Name | SID |
Everyone |
S-1-1-0 |
LOCAL | S-1-2-0 |
CREATOR OWNER | S-1-3-0 |
CREATOR GROUP | S-1-3-1 |
CREATOR OWNER SERVER | S-1-3-2 |
CREATOR GROUP SERVER | S-1-3-3 |
DIALUP | S-1-5-1 |
NETWORK | S-1-5-2 |
BATCH | S-1-5-3 |
INTERACTIVE | S-1-5-4 |
SERVICE | S-1-5-6 |
ANONYMOUS LOGON | S-1-5-7 |
PROXY | S-1-5-8 |
SYSTEM | S-1-5-18 |
ENTERPRISE DOMAIN CONTROLLERS | S-1-5-9 |
SELF | S-1-5-10 |
Authenticated Users | S-1-5-11 |
RESTRICTED | S-1-5-12 |
TERMINAL SERVER USER | S-1-5-13 |
REMOTE INTERACTIVE LOGON | S-1-5-14 |
LOCAL SERVICE | S-1-5-19 |
NETWORK SERVICE | S-1-5-20 |
BUILTIN | S-1-5-32 |
1-3.일반 사용자 계정도 보자
Name | SID |
Administrator | S-1-5-21-673264093-2323346938-2338303809-500 |
Admin | S-1-5-21-673264093-2323346938-2338303809-1007 |
ASPNET | S-1-5-21-673264093-2323346938-2338303809-1006 |
Guest | S-1-5-21-673264093-2323346938-2338303809-501 |
IUSR_INSTRUCTOR | S-1-5-21-673264093-2323346938-2338303809-1003 |
IWAM_INSTRUCTOR | S-1-5-21-673264093-2323346938-2338303809-1004 |
TestUser1 | S-1-5-21-673264093-2323346938-2338303809-1008 |
TestUser2 | S-1-5-21-673264093-2323346938-2338303809-1009 |
TestUser3 | S-1-5-21-673264093-2323346938-2338303809-1010 |
SUPPORT_388945a0 | S-1-5-21-673264093-2323346938-2338303809-1001 |
1-4. SID(Security IDentifier) 무엇인가?
SID란 대한민국 사람이라면 다 가지고 있는 주민번호와 같다고 생각해도 된다.
즉 이름은 같을 수 있지만 주민번호는 같을 수 없다. 라는 사실과 잘 부합이된다.
사용자 계정을 생성할때마다 생성되는 SID는 이런 구조로 되어있다.
SID=DomainID + RID(Relative ID)로 되어 있어서 한 시스템에서 사용자을 생성하면
TestUser1 | S-1-5-21-673264093-2323346938-2338303809-1008 |
TestUser2 | S-1-5-21-673264093-2323346938-2338303809-1009 |
TestUser3 | S-1-5-21-673264093-2323346938-2338303809-1010 |
빨강색 부문이 DomainID 이고 검정색 부분이 RID이다. 즉 RID가 넘버링 되면서 계속 할당이 되어지는 것이다.
1-4. 사용자 계정을 생성해 보자
1-4-1.시작-실행-CMD 입력하고 확인
1-4-2. 아래그림의 첫번째 방법은 사용자 이름(TestUser) 과 비밀번호(password)를 직접 입력하여 만든다. 문제점은 다른 사람이 이 사용자의 패스워드을 볼 수 있다는 것이다. 그래서 두버째 방법을 더 선호한다.
두번째 방법은 * (사용자를 생성하면서 비밀번호를 화면상에 표시되지 않도록 만들겠다는 것이다.)
1-4-3.윈도우 2003 서버에서는 사용자 이름을 20자까지 인식할 수 있다. 그리고 " /\[]:;|=,+*?<>이와 같은 특수 문자를 사용해서는 안된다. 또 대소문자를 식별하지는 않지만 만들때 대소문자을 혼합하여 생성했다면 계정이름은 Case-Retained된다.
아래그림은 첫번째는 20자, 두번째는 21자 다.
1-5.사용자 계정 다음과 같은 용도로 사용할 수 있다.
1-5-1.로그온 할때
1-5-2.프로세스나 서비스를 실행 할때
1-5-3.자원에 접근 사용 권한을 부여할때