NOTICE


 서비스는 시스템 권한으로 동작하기 때문에 서비스에 등록되는 프로세스와 데이터를 주고 받거나 통신을 하기 위해서는 해당 서비스에 대한 권한을 재설정 해주어야 합니다. 이때 사용하는 함수가 ConvertStringSecurityDescriptorToSecurityDescriptor API 입니다.


BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptor (

_In_            LPCTSTR                           StringSecurityDescriptor,

_In_            DWORD        StringSDRevision,   

_Out_         PSECURITY_DESCRIPTOR      *SecurityDescriptor,

_Out_    PULONG        SecurityDescriptorSize

);


첫번째 파라미터로 들어가는 값

D:P(A;;GA;;;SY)(A;;GA;;;BA)(A;;GA;;;WD)(A;;GA;;;RC)S:(ML;;NW;;;LW)


D: // DACL

P // Security descriptor control flags

//P의 의미: The SE_DACL_PROTECTED flag is set.

(A;;GA;;;SY) //Allow Read/Write/Excute right to System

(A;;GA;;;BA) //Allow Read/Write/Excute right to Built-in administrators.

(A;;GA;;;WD) //Allow Read/Write/Excute right to Everyone

(A;;GA;;;RC) //Allow Read/Write/Excute right to Restricted code.

S: //SACL

(ML;;NW;;;LW) //보안권한 낮게 만들기


<<참고 사이트>>

 - 첫 번째 파라미터 값의 의미 및 설명

   https://msdn.microsoft.com/ko-kr/library/windows/desktop/aa379570(v=vs.85).aspx

 - 괄호 안의 값들의 의미

   https://msdn.microsoft.com/ko-kr/library/windows/desktop/aa374928(v=vs.85).aspx


 이상으로 '[Tip] 서비스에 대한 권한 재설정'에 대한 포스팅을 마치겠습니다.