본문 바로가기

IT 살이/03. 관리 - 보안 관리

[연재 04] 관리자 토큰을 사용하도록 사용자가 직접 Vista에 일러주는 방법

Administrator Approval Mode의 관리자는 로그온을 하게 되면 일반 사용자 계정의 토큰을 사용하게 된다는 것은 이제 이해했다. UAC의 사정이 이러하므로 관리자 권한이 필요한 어플리케이션을 시작할때는 반드시 Windows에 관리자 토큰을 사용하도록 말해 줄 필요가 있다. 그렇지 않으면 Windows는 아무 생각없이 일반 사용자 토큰으로 프로그램을 시작할 것이고 그러다가 관리자 권한이 필요한 부분에서는 권한 부족으로 프로그램이 작동하지 않게 될 것이다. 이 포스트에서는 Windows에 관리자 토큰을 사용하도록 일러주는 방법으로서 사용자가 직접 조치를 취하는 방법을 알아본다. 그리고 다음 포스트에서는 사용자가 직접 일러주지 않더라도 Windows가 자동으로 인식해서 관리자 토큰을 사용할 수 있도록 하는 방법을 알아본다.

참고로 이렇게 관리자 토큰을 사용하게 됨으로써 사용자 권한이 관리자 권한으로 권한 레벨이 높아지는 것을 권한 상승(elevation)이라는 용어로 표현한다.

■ GUI에서 "관리자 권한으로 실행"

이 방법은 이미 이전 포스트에서 설명한 방 있다. 링크된 페이지에서는 실행할 프로그램을 cmd.exe로 했지만, 다른 프로그램들에도 해당하는 일반적인 방법이다.  링크 페이지에서 봤던 것은 사용자가 직접 실행파일을 오른쪽 클릭해서 나타나는 메뉴중에서 "관리자 권한으로 실행"을 선택하는 방법이다.

■ 커맨드창에서 "관리자 권한으로 실행"

이 방법은 커맨드 프롬프트창에서 RunAs 명령어를 사용해서 해당 프로그램을 관리자 권한으로 실행시킬 수 있다. 다음과 같은 형식으로 실행하면 된다.

"runas /user:<UserName> 프로그램"

1127014238

암호를 입력하면 관리자 권한으로 프로그램이 실행된다.

■ 간단한 권한 상승 팁

만약 어떤 프로그램을 관리자 권한으로 실행시켜야 하는 경우가 많다면 매번 오른쪽 클릭해서 "관리자 권한으로 실행" 메뉴를 선택하는 것이 번거로울 수도 있다. 다음은 이런 경우 오른쪽 클릭을 하지 않더라도 바로가기를 클릭할때마다 관리자 권한으로 실행할 수 있는 방법이다.

1. 시작 메뉴의 오른쪽 클릭

2. "탐색" 클릭

3. "프로그램->보조프로그램"폴더를 선택

4. 오른쪽 클릭->새로만들기->바로가기 선택

5. "항목 위치 입력"란에 cmd.exe 프로그램을 찾아서 경로를 입력한다( "C:\Windows\System32\cmd.exe" )

6. 바로가기에 대한 이름을 "관리자 권한의 명령 프롬프트"라고 입력한다.

7. 생성된 바로 가기를 오른쪽 클릭해서 속성창을 띄운다.

1308642599

[그림] "관리자 권한의 명령 프롬프트"의 바로가기 속성창

1179783572

[그림] 고급 속성창

이 창에서 "관리자 권한으로 실행"을 선택합니다.

8. 다음은 결과이다.

1167208481

[그림] 바로가기 생성된 결과

시작->모든 프로그램->보조프로그램을 보면 그림처럼 생성된 모습을 볼 수 있다. 바로가기 링크를 클릭하면 바로 동의 확이(Consent UI)창이 뜬다.

■ 이전 Windows 어플리케이션의 권한 상승

앞의 방법은 "시작" 메뉴에 있는 모든 바로가기에 대한 것이다. 만약 특별한 EXE 프로그램에 대해서 같은 작업을 해 주려면 약간 다른 UI를 보게 될 것이다. 프로그램의 오른쪽 클릭 속성창의 호환성 탭을 선택하면 그림과 같은 창이 뜬다.

1401691226

[그림] 이전 Windows 어플리케이션 속성창

"관리자 권한으로 이 프로그램 실행"을 체크하면 프로그램을 더블 클릭할때마다 관리자 권한으로 프로그램을 실행시키게 된다. 그러나 해당 계정이 아닌 다른 계정으로 로그온해서 실행하면 그 설정이 적용되지 않는다. 만약 모든 계정에 대해서 설정이 적용되도록 하고 싶다면 밑의 "모든 사용자에 대한 설정 표시"를 클릭한다. 그럼 호환성 탭 페이지와 비슷한 창이 또 뜨고 그곳의 "관리자 권한으로 이 프로그램 실행"을 체크하면 된다.

개발자라면 이 포스트의 내용보다는 다음 포스트에서 전달할 내용에 더 관심이 있을 것이다. 즉 어떻게 하면 프로그램을 실행시킬때 자동으로 관리자 권한으로 실행시킬 수 있는가에 대한 이야기다.