Derechos de acceso y seguridad de objetos de trabajo
El modelo de seguridad de Microsoft Windows permite controlar el acceso a los objetos de trabajo. Para obtener más información sobre la seguridad, vea Modelo de control de acceso.
Puede especificar un descriptor de seguridad para un objeto de trabajo al llamar a la función CreateJobObject . Si especifica NULL, el objeto de trabajo obtiene un descriptor de seguridad predeterminado. Las ACL del descriptor de seguridad predeterminado para un objeto de trabajo proceden del token principal o de suplantación del creador.
Para obtener o establecer el descriptor de seguridad de un objeto de trabajo, llame a la función GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo o SetSecurityInfo .
Los derechos de acceso válidos para los objetos de trabajo incluyen los derechos de acceso estándar y algunos derechos de acceso específicos del trabajo. En la tabla siguiente se enumeran los derechos de acceso estándar utilizados por todos los objetos.
Value | Significado |
---|---|
DELETE (0x00010000L) | Necesario para eliminar el objeto. |
READ_CONTROL (0x00020000L) | Se requiere para leer información en el descriptor de seguridad del objeto, sin incluir la información en sacl. Para leer o escribir la SACL, debe solicitar el derecho de acceso ACCESS_SYSTEM_SECURITY . Para obtener más información, consulte Derecho de acceso SACL. |
SYNCHRONIZE (0x00100000L) | Derecho a utilizar el objeto para la sincronización. Esto permite que un subproceso espere hasta que el objeto esté en estado señalado. |
WRITE_DAC (0x00040000L) | Necesario para modificar la DACL en el descriptor de seguridad del objeto . |
WRITE_OWNER (0x00080000L) | Necesario para cambiar el propietario en el descriptor de seguridad del objeto. |
En la tabla siguiente se enumeran los derechos de acceso específicos del trabajo.
Value | Significado |
---|---|
JOB_OBJECT_ALL_ACCESS (0x1F001F) | Combina todos los derechos de acceso válidos a objetos de trabajo. |
JOB_OBJECT_ASSIGN_PROCESS (0x0001) | Necesario para llamar a la función AssignProcessToJobObject para asignar procesos al objeto de trabajo. |
JOB_OBJECT_QUERY (0x0004) | Necesario para recuperar cierta información sobre un objeto de trabajo, como atributos e información de contabilidad (vea QueryInformationJobObject e IsProcessInJob). |
JOB_OBJECT_SET_ATTRIBUTES (0x0002) | Necesario para llamar a la función SetInformationJobObject para establecer los atributos del objeto de trabajo. |
JOB_OBJECT_SET_SECURITY_ATTRIBUTES (0x0010) | Esta marca no se admite. Debe establecer las limitaciones de seguridad individualmente para cada proceso asociado a un objeto de trabajo. Windows Server 2003 y Windows XP: Necesario para llamar a la función SetInformationJobObject con la clase de información JobObjectSecurityLimitInformation para establecer limitaciones de seguridad para los procesos asociados al objeto de trabajo. La compatibilidad con esta marca se quitó en Windows Vista y Windows Server 2008. |
JOB_OBJECT_TERMINATE (0x0008) | Necesario para llamar a la función TerminateJobObject para finalizar todos los procesos del objeto de trabajo. |
El identificador devuelto por CreateJobObject tiene JOB_OBJECT_ALL_ACCESS acceso al objeto de trabajo. Al llamar a la función OpenJobObject , el sistema comprueba los derechos de acceso solicitados en el descriptor de seguridad del objeto. Si un objeto de trabajo está en una jerarquía de trabajos anidados, un autor de llamada con acceso al objeto de trabajo tiene acceso implícitamente a todos sus trabajos secundarios en la jerarquía.
Puede solicitar el derecho de acceso ACCESS_SYSTEM_SECURITY a un objeto de trabajo si desea leer o escribir la SACL del objeto. Para obtener más información, consulte Listas de control de acceso (ACL) y Derecho de acceso SACL.
Debe establecer las limitaciones de seguridad individualmente para cada proceso asociado a un objeto de trabajo, en lugar de establecerlas para el propio objeto de trabajo. Para obtener información, consulte Derechos de acceso y seguridad de procesos.
Windows Server 2003 y Windows XP: Puede usar la función SetInformationJobObject para establecer limitaciones de seguridad para el objeto de trabajo. Esta funcionalidad se quitó en Windows Vista y Windows Server 2008.