사용자에게 Windows 서비스를 설치할 수 있는 권한을 부여하려면 어떻게 해야 합니까?

사용자에게 Windows 서비스를 설치할 수 있는 권한을 부여하려면 어떻게 해야 합니까?

개발팀이 Win2003 서버에 서비스를 설치할 수 있도록 하고 싶습니다. 제한된 계정으로 이미 RDP/FTP를 통해 연결할 수 있지만 설치 권한을 부여하고 싶습니다.

관리자 권한을 부여하지 않고 어떻게 해야 합니까?

(서비스는 .NET 프레임워크를 사용하여 생성되므로 C:\Windows\Microsoft.NET\Framework\v2.0.50727\installutil.exe로 설치합니다.)

답변1

서비스 설치에 대한 위임된 권한은 다소 어려울 수 있습니다. 전역 개체 관리자의 SCM(서비스 제어 관리자) 개체에 대해 사용자에게 부여할 수 있는 "SC_MANAGER_CREATE_SERVICE" 권한이 있습니다.

Windows Server 2003까지의 Windows 버전에서는 SCM에 대한 권한을 변경할 수 없습니다. W2K3 SP1부터 SCM에 대한 권한을 변경할 수 있습니다.

보안을 변경하는 API는 다음과 같습니다.SetServiceObjectSecurity, 자세한 내용은 여기에서 확인할 수 있습니다.http://msdn.microsoft.com/en-us/library/aa379589(VS.85).aspx

추가 참조: SCM에 부여할 수 있는 권한과 SCM에 설정된 기본 DACL은 여기에서 확인할 수 있습니다.http://msdn.microsoft.com/en-us/library/ms685981(VS.85).aspx

간단히 말해서, 코드를 작성하지 않고는 이를 수행할 수 있는 방법이 없습니다. 매직 레지스트리 설정 등은 없습니다. 하지만 누군가가 귀하를 위해 코드를 작성하도록 할 수 있다면 그것은 전적으로 가능합니다.

답변2

더 큰 문제는 개발팀이 관리하지 않는 서버에 액세스하도록 허용하는 것입니다. 사용자(SC_MANAGER_CREATE_SERVICE)에게 권한을 부여하는 대신 사용자에게 자체 상자를 제공하는 것에 대해 정말로 열심히 생각하십시오. 심지어 테스트할 VM이라도 일단 준비가 되었다고 말하면 실제 관리자는 프로덕션 시스템에 서비스를 설치해야 합니다.

답변3

http://support.microsoft.com/?kbid=288129서비스 관리에 대한 정보가 있지만 서버의 주요 보안 변경 없이 임의의 서비스 생성을 포함하도록 확장할 수는 없다고 생각합니다.

서비스를 생성한 다음 기술 자료에 설명된 대로 액세스 권한을 부여하면 개발자는 서비스를 중지하고 새 바이너리에 복사할 수 있으므로 처음에 서비스를 생성해야 하는 경우에도 서비스를 개발/디버깅할 수 있습니다.

개인적으로 저는 개발자를 테스트 서버로 제한하고 관리자 액세스 권한을 부여합니다. 이 작은 아이들은 자신의 작업이 제대로 작동하는지 먼저 확인하지 않고는 내 라이브 서버에 액세스할 수 없습니다!

JR

관련 정보