2009-08-19 3 views
3

Windows 서비스 프로그래밍을 처음 사용합니다. Windows 서비스를 작성하는 동안 계정 유형을 설정하는 것에 대한 혼란이 있습니다.LocalSystem 및 LocalService 계정을 혼동했습니다.

서비스를 작성하는 동안 설정해야하는 계정 유형을 선택하거나 결정하는 방법은 무엇입니까?

답변

4

일반적으로 사용자 지정 서비스를 실행하기 위해 특수한 창 (네트워크를 통해 인증해야하는 항목에 대한 로컬 전용 액세스 또는 도메인 계정)을 만듭니다. 이렇게하면 사용 권한을 제한하고 잠글 수 있기 때문에 필요한 권한 만 사용할 수 있습니다. 공유 서버에서 모니터링을 통해 어떤 특정 사용자가 범인인지 리소스 호깅인지 확인할 수도 있습니다. 계정에 내장 된 관해서

...

로컬 시스템 : 내장 된 로컬 시스템 사용자 계정이 액세스 권한의 높은 수준; 이는 Administrators 그룹의 일부입니다.

네트워크 서비스 : 내장 된 네트워크 서비스 사용자 계정 적은 액세스가 LocalSystem 사용자 계정과 시스템에 대한 권한이 있지만 네트워크 서비스 사용자 계정이 여전히 컴퓨터 계정의 자격 증명을 사용하여 네트워크를 통해 상호 작용을 할 수있다 . 로컬 서비스 : 로컬 서비스 : 기본 제공 로컬 서비스 사용자 계정은 네트워크 서비스 사용자 계정보다 컴퓨터에 대한 액세스 권한이 적습니다. 작업자 프로세스가 실행중인 서버 외부로의 액세스가 필요하지 않은 경우 로컬 서비스 사용자 계정을 사용하십시오. 소스 (들) : 은 Microsoft TechNet

+0

감사합니다. Jay. 지역 서비스 계정에서 서비스를 실행하는 예제 시나리오를 제공 할 수 있습니까? 고맙습니다. –

+0

가장 쉬운 방법은 PC의 서비스 콘솔에서 ... 관리 도구 - 서비스의 비스타/XP를 살펴 보는 것입니다. 여기에서 "로그온 계정"열을 정렬하고 각 계정에 대해 시작된 서비스 유형을 찾을 수 있습니다. 간단한 예는 로컬 PC의 uPNP 장치를 호스팅하는 UPnP 검색 서비스입니다. 이 서비스는 Microsoft가 "로컬 서비스"계정을 사용하도록 제한된 액세스 만 필요합니다. – Jay

1

로컬 시스템

LocalSystem 계정은 서비스 제어 관리자가 사용하는 미리 정의 된 로컬 계정입니다. 이 계정은 보안 하위 시스템에서 인식 할 수 없으므로 LookupAccountName 함수를 호출 할 때 이름을 지정할 수 없습니다.

로컬 컴퓨터에 대한 광범위한 권한을 가지며 네트워크상의 컴퓨터 역할을합니다. 토큰에는 NT AUTHORITY \ SYSTEM 및 BUILTIN \ Administrators SID가 포함됩니다. 이러한 계정은 대부분의 시스템 개체에 액세스 할 수 있습니다. 모든 로캘의 계정 이름은. \ LocalSystem입니다. 이름, LocalSystem 또는 ComputerName \ LocalSystem을 사용할 수도 있습니다. 이 계정에는 암호가 없습니다. CreateService 또는 ChangeServiceConfig 함수에 대한 호출에서 LocalSystem 계정을 지정하면 입력 한 모든 암호 정보가 무시됩니다.

NetworkService 계정

NetworkService와 서비스 제어 매니저에 의해 사용되는 소정의 로컬 계정이다. 이 계정은 보안 하위 시스템에서 인식 할 수 없으므로 LookupAccountName 함수를 호출 할 때 이름을 지정할 수 없습니다. 로컬 컴퓨터에 대한 최소 권한을 가지며 네트워크상의 컴퓨터 역할을합니다.

이 계정은 CreateService 및 ChangeServiceConfig 함수를 호출하여 지정할 수 있습니다. 이 계정에는 암호가 없으므로이 호출에서 제공하는 암호 정보는 무시됩니다. 보안 하위 시스템이이 계정 이름을 지역화하는 동안 SCM은 지역화 된 이름을 지원하지 않습니다. 따라서 LookupAccountSid 함수에서이 계정에 대한 지역화 된 이름을 받지만 로캘에 관계없이 CreateService 또는 ChangeServiceConfig를 호출 할 때 계정 이름은 NT AUTHORITY \ NetworkService 여야합니다. 그렇지 않으면 예기치 않은 결과가 발생할 수 있습니다.

NetworkService 계정의 컨텍스트에서 실행되는 서비스는 컴퓨터의 자격 증명을 원격 서버에 제공합니다. 기본적으로 원격 토큰에는 Everyone 및 Authenticated Users 그룹의 SID가 들어 있습니다. 사용자 SID는 SECURITY_NETWORK_SERVICE_RID 값에서 생성됩니다.

NetworkService 계정에는 HKEY_USERS 레지스트리 키 아래에 고유 한 하위 키가 있습니다. 따라서 HKEY_CURRENT_USER 레지스트리 키는 NetworkService 계정과 연결됩니다.

관련 문제