회사에서 서버운영을 하면서 윈도우의 경우 계정과 권한 문제로 골치아플 때가 있습니다. 보안상의 이유로 Administrators 권한은 System Admin만 가지고, 나머지 운영부서의 (AP, DB, 미들웨어) 계정은 관리자 권한이 없는 일반 유저 계정을 부여하려고 하는데, 문제는 리눅스와 달리 윈도우의 경우 Administrators 그룹이 아니면 정말 아무것도 하지 못할 정도로 권한이 제한된다는 것입니다.

그 여러가지 제한점 중 하나가 바로 서비스 구동 문제입니다. 예를 들어 DBA가 MSSQL을 내렸다 올렸다 자유롭게 하려면 MSSQLSERVER 라는 서비스를 내리고 올릴 수 있어야겠지요. 그런데 만약 그 DBA가 Administrators 그룹에 속해있는 계정이 아니라면, 권한이 없기 때문에 MSSQL을 올렸다 내렸다 할 수 없습니다.

이 문제를 해결할 수 있는 방법이... 있기는 있더군요. MS에 기술지원 받아서 알아낸 내용입니다.

SubInACL
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23510

다운로드


일단 SubInACL을 설치합니다. 기본 경로로 설치하셨다면 C:\Program Files\Windows Resource Kits\Tools 폴더에 설치될 것인데, 커맨드 창을 띄워서 해당 경로로 이동하셔도 되고, 서버 2008 이상의 경우 Shift + 우클릭 하시면 해당 폴더 위치에 바로 관리자 권한으로 커맨드 창을 띄울 수 있습니다.

아 사용법을 보여드리기 전에 먼저 테스트 환경을 보여드리겠습니다. 제가 관리자 권한이 없는 일반 Test 계정을 생성하였고, 현재 상태에서는 Test 계정이 윈도우에 설치한 아파치 서비스를 제어할 수 없는 상황입니다.


아파치 서비스 모니터 툴에서 Stop 버튼을 눌러도 당연히 오류가 발생합니다. 권한이 없기 때문이죠.


이제 이 Test 계정에 아파치 서비스만 제어할 수 있는 권한을 부여해 보겠습니다. 일단 서비스 명을 알아야 하는데, services.msc에서 각 서비스의 속성을 보시면 서비스 이름이 나오죠. 그 이름을 사용하시면 됩니다.


예제) subinacl /SERVICE Apache2.2 /GRANT=test=F


잘 된 것 같죠? 이제 Test 계정으로 로그인해서 확인을 해보겠습니다.

아까전과는 달리 아파치 서비스를 제어할 수 있도록 버튼이 활성화된 모습입니다.


또한 아파치 서비스 모니터 툴에서 Stop 버튼을 눌러봤는데, 정상적으로 잘 멈추더군요.



이처럼 관리자 권한이 없는 일반 유저 계정에 특정 서비스만 제어할 수 있는 권한을 부여하고 싶다면 SubInACL 툴을 사용해보시기 바랍니다. 일일이 설정하는게 조금 귀찮기는 하겠지만, 무턱대고 Admin 권한을 주는 것 보다는 보안상 훨씬 좋은 방법이라고 생각합니다.