Droits d’accès et de sécurité des objets de travail

Le modèle de sécurité Microsoft Windows vous permet de contrôler l’accès aux objets de travail. Pour plus d’informations sur la sécurité, consultez Modèle de contrôle d’accès.

Vous pouvez spécifier un descripteur de sécurité pour un objet de travail lorsque vous appelez la fonction CreateJobObject . Si vous spécifiez NULL, l’objet de travail obtient un descripteur de sécurité par défaut. Les listes de contrôle d’accès dans le descripteur de sécurité par défaut d’un objet de travail proviennent du jeton principal ou d’emprunt d’identité du créateur.

Pour obtenir ou définir le descripteur de sécurité d’un objet de travail, appelez la fonction GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo ou SetSecurityInfo .

Les droits d’accès valides pour les objets de travail incluent les droits d’accès standard et certains droits d’accès spécifiques au travail. Le tableau suivant répertorie les droits d’accès standard utilisés par tous les objets.

Valeur Signification
DELETE (0x00010000L) Obligatoire pour supprimer l’objet.
READ_CONTROL (0x00020000L) Obligatoire pour lire les informations dans le descripteur de sécurité de l’objet, sans inclure les informations dans la liste de contrôle d’accès partagé. Pour lire ou écrire la liste saCL, vous devez demander le droit d’accès ACCESS_SYSTEM_SECURITY . Pour plus d’informations, consultez Droit d’accès SACL.
SYNCHRONIZE (0x00100000L) Droit d'utiliser l'objet pour la synchronisation. Cela permet à un thread d’attendre que l’objet soit à l’état signalé.
WRITE_DAC (0x00040000L) Obligatoire pour modifier la liste DACL dans le descripteur de sécurité de l’objet.
WRITE_OWNER (0x00080000L) Obligatoire pour modifier le propriétaire dans le descripteur de sécurité de l’objet.

 

Le tableau suivant répertorie les droits d’accès spécifiques au travail.

Valeur Signification
JOB_OBJECT_ALL_ACCESS (0x1F001F) Combine tous les droits d’accès aux objets de travail valides.
JOB_OBJECT_ASSIGN_PROCESS (0x0001) Obligatoire pour appeler la fonction AssignProcessToJobObject pour affecter des processus à l’objet de travail.
JOB_OBJECT_QUERY (0x0004) Obligatoire pour récupérer certaines informations sur un objet de travail, telles que les attributs et les informations de comptabilité (consultez QueryInformationJobObject et IsProcessInJob).
JOB_OBJECT_SET_ATTRIBUTES (0x0002) Obligatoire pour appeler la fonction SetInformationJobObject pour définir les attributs de l’objet de travail.
JOB_OBJECT_SET_SECURITY_ATTRIBUTES (0x0010) Cet indicateur n’est pas pris en charge. Vous devez définir des limitations de sécurité individuellement pour chaque processus associé à un objet de travail. Windows Server 2003 et Windows XP : Obligatoire pour appeler la fonction SetInformationJobObject avec la classe d’informations JobObjectSecurityLimitInformation pour définir des limitations de sécurité pour les processus associés à l’objet de travail. La prise en charge de cet indicateur a été supprimée dans Windows Vista et Windows Server 2008.
JOB_OBJECT_TERMINATE (0x0008) Obligatoire pour appeler la fonction TerminateJobObject pour arrêter tous les processus dans l’objet de travail.

 

Le handle retourné par CreateJobObject a JOB_OBJECT_ALL_ACCESS accès à l’objet de travail. Lorsque vous appelez la fonction OpenJobObject , le système vérifie les droits d’accès demandés par rapport au descripteur de sécurité de l’objet. Si un objet de travail se trouve dans une hiérarchie de travaux imbriqués, un appelant ayant accès à l’objet de travail a implicitement accès à tous ses travaux enfants dans la hiérarchie.

Vous pouvez demander le droit d’accès ACCESS_SYSTEM_SECURITY à un objet de travail si vous souhaitez lire ou écrire la saCL de l’objet. Pour plus d’informations, consultez Listes de contrôle d’accès (ACL) et Droit d’accès SACL.

Vous devez définir des limitations de sécurité individuellement pour chaque processus associé à un objet de travail, plutôt que de les définir pour l’objet de travail lui-même. Pour plus d’informations, consultez Traiter les droits de sécurité et d’accès.

Windows Server 2003 et Windows XP : Vous pouvez utiliser la fonction SetInformationJobObject pour définir des limitations de sécurité pour l’objet de travail. Cette fonctionnalité a été supprimée dans Windows Vista et Windows Server 2008.