Sicherheit und Zugriffsrechte für Auftragsobjekte
Mit dem Microsoft Windows-Sicherheitsmodell können Sie den Zugriff auf Auftragsobjekte steuern. Weitere Informationen zur Sicherheit finden Sie unter Access-Control Model.
Sie können einen Sicherheitsdeskriptor für ein Auftragsobjekt angeben, wenn Sie die CreateJobObject--Funktion aufrufen. Wenn Sie NULL angeben, ruft das Auftragsobjekt einen Standardsicherheitsdeskriptor ab. Die ACLs im Standardsicherheitsdeskriptor für ein Auftragsobjekt stammen aus dem primären Oder Identitätswechseltoken des Erstellers.
Rufen Sie zum Abrufen oder Festlegen der Sicherheitsbeschreibung für ein Auftragsobjekt die GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo-oder SetSecurityInfo-Funktion auf.
Zu den gültigen Zugriffsrechten für Auftragsobjekte gehören die Standardzugriffsrechte und einige jobspezifische Zugriffsrechte. In der folgenden Tabelle sind die Standardzugriffsrechte aufgeführt, die von allen Objekten verwendet werden.
Wert | Bedeutung |
---|---|
DELETE- (0x00010000L) | Erforderlich, um das Objekt zu löschen. |
READ_CONTROL (0x00020000L) | Erforderlich zum Lesen von Informationen im Sicherheitsdeskriptor für das Objekt, nicht einschließlich der Informationen in der SACL. Um die SACL zu lesen oder zu schreiben, müssen Sie das ACCESS_SYSTEM_SECURITY Zugriffsrecht anfordern. Weitere Informationen finden Sie unter SACL Access Right. |
SYNCHRONIZE (0x00100000L) | Das Recht, das Objekt für die Synchronisierung zu verwenden. Dadurch kann ein Thread warten, bis sich das Objekt im signalisierten Zustand befindet. |
WRITE_DAC (0x00040000L) | Erforderlich, um die DACL im Sicherheitsdeskriptor für das Objekt zu ändern. |
WRITE_OWNER (0x00080000L) | Erforderlich, um den Besitzer im Sicherheitsdeskriptor für das Objekt zu ändern. |
In der folgenden Tabelle sind die auftragsspezifischen Zugriffsrechte aufgeführt.
Wert | Bedeutung |
---|---|
JOB_OBJECT_ALL_ACCESS (0x1F001F) | Kombiniert alle gültigen Zugriffsrechte für Auftragsobjekte. |
JOB_OBJECT_ASSIGN_PROCESS (0x0001) | Erforderlich, um die AssignProcessToJobObject--Funktion aufzurufen, um dem Auftragsobjekt Prozesse zuzuweisen. |
JOB_OBJECT_QUERY (0x0004) | Erforderlich zum Abrufen bestimmter Informationen zu einem Auftragsobjekt, z. B. Attribute und Buchhaltungsinformationen (siehe QueryInformationJobObject und IsProcessInJob-). |
JOB_OBJECT_SET_ATTRIBUTES (0x0002) | Erforderlich, um die SetInformationJobObject--Funktion aufzurufen, um die Attribute des Auftragsobjekts festzulegen. |
JOB_OBJECT_SET_SECURITY_ATTRIBUTES (0x0010) | Dieses Kennzeichen wird nicht unterstützt. Sie müssen Sicherheitsbeschränkungen für jeden Prozess festlegen, der einem Auftragsobjekt zugeordnet ist.Windows Server 2003 und Windows XP: Erforderlich, um die funktion SetInformationJobObject mit der JobObjectSecurityLimitInformation Informationsklasse aufzurufen, um Sicherheitsbeschränkungen für die Prozesse festzulegen, die dem Auftragsobjekt zugeordnet sind. Die Unterstützung für dieses Flag wurde in Windows Vista und Windows Server 2008 entfernt. |
JOB_OBJECT_TERMINATE (0x0008) | Erforderlich, um die TerminateJobObject--Funktion aufzurufen, um alle Prozesse im Auftragsobjekt zu beenden. |
Das von CreateJobObject zurückgegebene Handle hat JOB_OBJECT_ALL_ACCESS Zugriff auf das Auftragsobjekt. Wenn Sie die OpenJobObject--Funktion aufrufen, überprüft das System die angeforderten Zugriffsrechte auf den Sicherheitsdeskriptor des Objekts. Wenn sich ein Auftragsobjekt in einer Hierarchie von geschachtelten Aufträgenbefindet, hat ein Aufrufer mit Zugriff auf das Auftragsobjekt implizit Zugriff auf alle untergeordneten Aufträge in der Hierarchie.
Sie können das ACCESS_SYSTEM_SECURITY Zugriffsrecht auf ein Auftragsobjekt anfordern, wenn Sie die SACL des Objekts lesen oder schreiben möchten. Weitere Informationen finden Sie unter Access-Control Listen (ACLs) und SACL Access Right.
Sie müssen Sicherheitsbeschränkungen für jeden Prozess festlegen, der einem Auftragsobjekt zugeordnet ist, anstatt sie für das Auftragsobjekt selbst festzulegen. Weitere Informationen finden Sie unter Prozesssicherheit und Zugriffsberechtigungen.
Windows Server 2003 und Windows XP: Sie können die SetInformationJobObject-Funktion verwenden, um Sicherheitsbeschränkungen für das Auftragsobjekt festzulegen. Diese Funktion wurde in Windows Vista und Windows Server 2008 entfernt.