Microsoft Windows セキュリティ モデルを使用すると、ジョブ オブジェクトへのアクセスを制御できます。 セキュリティの詳細については、「Access-Control モデルの」を参照してください。
CreateJobObject 関数を呼び出すときに、ジョブ オブジェクトの セキュリティ記述子 を指定できます。 NULL を指定すると、ジョブ オブジェクトは既定のセキュリティ記述子を取得します。 ジョブ オブジェクトの既定のセキュリティ記述子の ACL は、作成者のプライマリ トークンまたは偽装トークンから取得されます。
ジョブ オブジェクトのセキュリティ記述子を取得または設定するには、GetNamedSecurityInfo、SetNamedSecurityInfo、GetSecurityInfo、または SetSecurityInfo関数呼び出します。
ジョブ オブジェクトの有効なアクセス権には、標準アクセス権 と、ジョブ固有のアクセス権が含まれます。 次の表に、すべてのオブジェクトで使用される標準アクセス権の一覧を示します。
次の表に、ジョブ固有のアクセス権を示します。
価値 | 意味 |
---|---|
JOB_OBJECT_ALL_ACCESS (0x1F001F) | 有効なすべてのジョブ オブジェクト アクセス権を結合します。 |
JOB_OBJECT_ASSIGN_PROCESS (0x0001) | AssignProcessToJobObject 関数を呼び出して、ジョブ オブジェクトにプロセスを割り当てるために必要です。 |
JOB_OBJECT_QUERY (0x0004) | 属性やアカウンティング情報など、ジョブ オブジェクトに関する特定の情報を取得するために必要です (QueryInformationJobObject と IsProcessInJobのを参照してください)。 |
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 アクセス権を要求できます。 詳細については、「Access-Control リスト (ACL)」および「SACL アクセス権限 」を参照してください。
セキュリティ制限は、ジョブ オブジェクト自体に設定するのではなく、ジョブ オブジェクトに関連付けられているプロセスごとに個別に設定する必要があります。 詳細については、「プロセス セキュリティとアクセス権の 」を参照してください。
Windows Server 2003 および Windows XP:SetInformationJobObject 関数を使用して、ジョブ オブジェクトのセキュリティ制限を設定できます。 この機能は、Windows Vista および Windows Server 2008 で削除されました。