작업 개체 보안 및 액세스 권한

Microsoft Windows 보안 모델을 사용하면 작업 개체에 대한 액세스를 제어할 수 있습니다. 보안에 대한 자세한 내용은 Access-Control 모델을 참조하세요.

CreateJobObject 함수를 호출할 때 작업 개체에 대한 보안 설명자를 지정할 수 있습니다. NULL을 지정하면 작업 개체가 기본 보안 설명자를 가져옵니다. 작업 개체에 대한 기본 보안 설명자의 ACL은 작성자의 기본 또는 가장 토큰에서 가져옵니다.

작업 개체에 대한 보안 설명자를 얻거나 설정하려면 GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo 또는 SetSecurityInfo 함수를 호출합니다.

작업 개체에 대한 유효한 액세스 권한에는 표준 액세스 권한 및 일부 작업별 액세스 권한이 포함됩니다. 다음 표에는 모든 개체에서 사용하는 표준 액세스 권한이 나열되어 있습니다.

의미
DELETE (0x00010000L) 개체를 삭제하는 데 필요합니다.
READ_CONTROL (0x00020000L) SACL의 정보를 포함하지 않고 개체의 보안 설명자에서 정보를 읽는 데 필요합니다. SACL을 읽거나 쓰려면 ACCESS_SYSTEM_SECURITY 액세스 권한을 요청해야 합니다. 자세한 내용은 SACL 액세스 권한을 참조하세요.
SYNCHRONIZE (0x00100000L) 동기화에 개체를 사용할 수 있는 권한입니다. 이렇게 하면 스레드가 개체가 신호 상태가 될 때까지 대기할 수 있습니다.
WRITE_DAC (0x00040000L) 개체의 보안 설명자에서 DACL을 수정하는 데 필요합니다.
WRITE_OWNER (0x00080000L) 개체의 보안 설명자에서 소유자를 변경해야 합니다.

 

다음 표에서는 작업별 액세스 권한을 나열합니다.

의미
JOB_OBJECT_ALL_ACCESS (0x1F001F) 모든 유효한 작업 개체 액세스 권한을 결합합니다.
JOB_OBJECT_ASSIGN_PROCESS (0x0001) AssignProcessToJobObject 함수를 호출하여 작업 개체에 프로세스를 할당하는 데 필요합니다.
JOB_OBJECT_QUERY (0x0004) 특성 및 회계 정보와 같은 작업 개체에 대한 특정 정보를 검색하는 데 필요합니다( QueryInformationJobObjectIsProcessInJob 참조).
JOB_OBJECT_SET_ATTRIBUTES (0x0002) SetInformationJobObject 함수를 호출하여 작업 개체의 특성을 설정하는 데 필요합니다.
JOB_OBJECT_SET_SECURITY_ATTRIBUTES (0x0010) 이 플래그는 지원되지 않습니다. 작업 개체와 연결된 각 프로세스에 대해 개별적으로 보안 제한을 설정해야 합니다. Windows Server 2003 및 Windows XP:JobObjectSecurityLimitInformation 정보 클래스를 사용하여 SetInformationJobObject 함수를 호출하여 작업 개체와 연결된 프로세스에 대한 보안 제한을 설정하는 데 필요합니다. 이 플래그에 대한 지원은 Windows Vista 및 Windows Server 2008에서 제거되었습니다.
JOB_OBJECT_TERMINATE (0x0008) TerminateJobObject 함수를 호출하여 작업 개체의 모든 프로세스를 종료하는 데 필요합니다.

 

CreateJobObject에서 반환된 핸들에는 작업 개체에 대한 JOB_OBJECT_ALL_ACCESS 액세스 권한이 있습니다. OpenJobObject 함수를 호출하면 시스템은 개체의 보안 설명자에 대해 요청된 액세스 권한을 확인합니다. 작업 개체가 중첩된 작업의 계층 구조에 있는 경우 작업 개체에 대한 액세스 권한이 있는 호출자는 계층의 모든 자식 작업에 암시적으로 액세스할 수 있습니다.

개체의 SACL을 읽거나 쓰려는 경우 작업 개체에 대한 ACCESS_SYSTEM_SECURITY 액세스 권한을 요청할 수 있습니다. 자세한 내용은 ACL(액세스 제어 목록)SACL 액세스 권한을 참조하세요.

작업 개체 자체에 대해 설정하는 대신 작업 개체와 연결된 각 프로세스에 대해 개별적으로 보안 제한을 설정해야 합니다. 자세한 내용은 프로세스 보안 및 액세스 권한을 참조하세요.

Windows Server 2003 및 Windows XP:SetInformationJobObject 함수를 사용하여 작업 개체에 대한 보안 제한을 설정할 수 있습니다. 이 기능은 Windows Vista 및 Windows Server 2008에서 제거되었습니다.