Constantes de privilegios (autorización)

Los privilegios determinan el tipo de operaciones del sistema que puede realizar una cuenta de usuario. Un administrador asigna privilegios a cuentas de usuario y de grupo. Los privilegios de cada usuario incluyen los concedidos al usuario y a los grupos a los que pertenece el usuario.

Las funciones que obtienen y ajustan los privilegios en un token de acceso usan el tipo LUIS (identificador único local) para identificar privilegios. Use la función LookupPrivilegeValue para determinar el LUID en el sistema local que corresponde a una constante de privilegios. Use la función LookupPrivilegeName para convertir un LUID en su constante de cadena correspondiente.

El sistema operativo representa un privilegio mediante la cadena que sigue a "Permiso de usuario" en la columna Descripción de la tabla siguiente. El sistema operativo muestra las cadenas correctas de usuario en la columna Directiva del nodo Asignación de permisos del usuario del complemento Microsoft Management Console (MMC) en Configuración de seguridad local.

Ejemplo

BOOL EnablePrivilege()
{
    LUID PrivilegeRequired ;
    BOOL bRes = FALSE;
  
    bRes = LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &PrivilegeRequired);

    // ...

    return bRes;
}

Ejemplo tomado del directorio Windows Classic Samples de GitHub.

Constantes

Valor/constante Descripción
SE_ASSIGNPRIMARYTOKEN_NAME
TEXT("SeAssignPrimaryTokenPrivilege")
Necesario para asignar el token primario de un proceso.
Permiso de usuario: reemplazar un token de nivel de proceso.
SE_AUDIT_NAME
TEXT("SeAuditPrivilege")
Necesario para generar entradas de registro de auditoría. Conceda este privilegio a los servidores seguros.
Permiso de usuario: genere auditorías de seguridad.
SE_BACKUP_NAME
TEXT("SeBackupPrivilege")
Necesario para realizar operaciones de copia de seguridad. Este privilegio hace que el sistema conceda todo el control de acceso de lectura a cualquier archivo, independientemente de la lista de control de acceso (ACL) especificada para el archivo. Cualquier solicitud de acceso que no sea de lectura se sigue evaluando con la ACL. Las funciones RegSaveKey y RegSaveKeyEx requieren este privilegio. Se conceden los siguientes derechos de acceso si se mantiene este privilegio:
  • READ_CONTROL
  • ACCESS_SYSTEM_SECURITY
  • FILE_GENERIC_READ
  • FILE_TRAVERSE
Permiso de usuario: hacer copias de seguridad de archivos y directorios.
Si el archivo se encuentra en una unidad extraíble y se habilita la opción "Auditar almacenamiento extraíble", se requiere que el SE_SECURITY_NAME tenga ACCESS_SYSTEM_SECURITY.
SE_CHANGE_NOTIFY_NAME
TEXT("SeChangeNotifyPrivilege")
Necesario para recibir notificaciones de cambios en archivos o directorios. Este privilegio también hace que el sistema omita todas las comprobaciones de acceso transversal. Está habilitado de forma predeterminada para todos los usuarios.
Permiso de usuario: omitir comprobación de recorrido.
SE_CREATE_GLOBAL_NAME
TEXT("SeCreateGlobalPrivilege")
Necesario para crear objetos de asignación de archivo con nombre en el espacio de nombres global durante las sesiones de Terminal Services. Este privilegio está habilitado de forma predeterminada para administradores, servicios y la cuenta del sistema local.
Permiso de usuario: crear objetos globales.
SE_CREATE_PAGEFILE_NAME
TEXT("SeCreatePagefilePrivilege")
Necesario para crear un archivo de paginación.
Permiso de usuario: crear un archivo de paginación.
SE_CREATE_PERMANENT_NAME
TEXT("SeCreatePermanentPrivilege")
Necesario para crear un objeto permanente.
Permiso de usuario: crear objetos compartidos permanentes.
SE_CREATE_SYMBOLIC_LINK_NAME
TEXT("SeCreateSymbolicLinkPrivilege")
Necesario para crear un vínculo simbólico.
Permiso de usuario: crear vínculos simbólicos.
SE_CREATE_TOKEN_NAME
TEXT("SeCreateTokenPrivilege")
Necesario para crear un token primario.
Permiso de usuario: crear un objeto de token.
No puede agregar este privilegio a una cuenta de usuario con la directiva "Crear un objeto de token". Además, no puede agregar este privilegio a un proceso propio mediante las API de Windows.Windows Server 2003 y Windows XP con SP1 y versiones anteriores: las API de Windows pueden agregar este privilegio a un proceso propio.

SE_DEBUG_NAME
TEXT("SeDebugPrivilege")
Necesaria para depurar y ajustar la memoria de un proceso que pertenece a otra cuenta.
Permiso de usuario: depurar programas.
SE_DELEGATE_SESSION_USER_IMPERSONATE_NAME
TEXT("SeDelegateSessionUserImpersonatePrivilege")
Necesario para obtener un token de suplantación para otro usuario en la misma sesión.
Permiso de usuario: suplantar a otros usuarios.
SE_ENABLE_DELEGATION_NAME
TEXT("SeEnableDelegationPrivilege")
Necesario para marcar las cuentas de usuario y equipo como de confianza para la delegación.
Permiso de usuario: necesario para hacer que las cuentas de usuario y de equipo sean de confianza para la delegación.
SE_IMPERSONATE_NAME
TEXT("SeImpersonatePrivilege")
Necesario para suplantar.
Permiso de usuario: suplantar a un cliente tras la autenticación.
SE_INC_BASE_PRIORITY_NAME
TEXT("SeIncreaseBasePriorityPrivilege")
Necesario para aumentar la prioridad base de un proceso.
Permiso de usuario: aumentar la prioridad de programación.
SE_INCREASE_QUOTA_NAME
TEXT("SeIncreaseQuotaPrivilege")
Necesario para aumentar la cuota asignada a un proceso.
Permiso de usuario: ajustar las cuotas de la memoria para un proceso.
SE_INC_WORKING_SET_NAME
TEXT("SeIncreaseWorkingSetPrivilege")
Se requiere para asignar más memoria para las aplicaciones que se ejecutan en el contexto de los usuarios.
Permiso de usuario: aumentar el espacio de trabajo de un proceso.
SE_LOAD_DRIVER_NAME
TEXT("SeLoadDriverPrivilege")
Necesaria para cargar o descargar un controlador de dispositivo.
Permiso de usuario: cargar y descargar controladores de dispositivo.
SE_LOCK_MEMORY_NAME
TEXT("SeLockMemoryPrivilege")
Necesario para bloquear páginas físicas en la memoria.
Permiso de usuario: bloquear páginas en una memoria.
SE_MACHINE_ACCOUNT_NAME
TEXT("SeMachineAccountPrivilege")
Necesario para crear una cuenta de equipo.
Permiso de usuario: agregar estaciones de trabajo al dominio.
SE_MANAGE_VOLUME_NAME
TEXT("SeManageVolumePrivilege")
Necesario para habilitar privilegios de administración de volúmenes.
Permiso de usuario: realizar tareas de mantenimiento de volumen.
SE_PROF_SINGLE_PROCESS_NAME
TEXT("SeProfileSingleProcessPrivilege")
Necesario para recopilar información de generación de perfiles para un único proceso.
Permiso de usuario: analizar proceso único.
SE_RELABEL_NAME
TEXT("SeRelabelPrivilege")
Necesario para modificar el nivel de integridad obligatorio de un objeto.
Permiso de usuario: modificar una etiqueta de objeto.
SE_REMOTE_SHUTDOWN_NAME
TEXT("SeRemoteShutdownPrivilege")
Necesario para apagar un sistema mediante una solicitud de red.
Permiso de usuario: forzar cierre desde un sistema remoto.
SE_RESTORE_NAME
TEXT("SeRestorePrivilege")
Necesario para realizar operaciones de restauración. Este privilegio hace que el sistema conceda todo el control de acceso de escritura a cualquier archivo, independientemente de la ACL especificada para el archivo. Las solicitudes de acceso que no sean de escritura se siguen evaluando con la ACL. Además, este privilegio le permite establecer cualquier SID de usuario o grupo válido como el propietario de un archivo. Esta función RegLoadKey requiere este privilegio. Se conceden los siguientes derechos de acceso si se mantiene este privilegio:
  • WRITE_DAC
  • WRITE_OWNER
  • ACCESS_SYSTEM_SECURITY
  • FILE_GENERIC_WRITE
  • FILE_ADD_FILE
  • FILE_ADD_SUBDIRECTORY
  • Delete
Permiso de usuario: restaurar archivos y directorios.
Si el archivo se encuentra en una unidad extraíble y se habilita la opción "Auditar almacenamiento extraíble", se requiere que el SE_SECURITY_NAME tenga ACCESS_SYSTEM_SECURITY.
SE_SECURITY_NAME
TEXT("SeSecurityPrivilege")
Necesario para realizar varias funciones relacionadas con la seguridad, como controlar y ver mensajes de auditoría. Este privilegio identifica a su titular como operador de seguridad.
Permiso de usuario: administrar registro de seguridad y auditoría.
SE_SHUTDOWN_NAME
TEXT("SeShutdownPrivilege")
Necesario para apagar un sistema local.
Permiso de usuario: apagar el sistema.
SE_SYNC_AGENT_NAME
TEXT("SeSyncAgentPrivilege")
Necesario para que un controlador de dominio use los servicios de sincronización de directorios del protocolo ligero de acceso a directorios. Este privilegio permite al titular leer todos los objetos y propiedades del directorio, independientemente de la protección de los objetos y propiedades. De forma predeterminada, se asigna a las cuentas de administrador y LocalSystem en controladores de dominio.
Permiso de usuario: sincronizar los datos del servicio de directorio.
SE_SYSTEM_ENVIRONMENT_NAME
TEXT("SeSystemEnvironmentPrivilege")
Necesaria para modificar la RAM permanente de los sistemas que usan este tipo de memoria para almacenar información de configuración.
Permiso de usuario: modificar valores de entorno firmware.
SE_SYSTEM_PROFILE_NAME
TEXT("SeSystemProfilePrivilege")
Necesario para recopilar información de generación de perfiles para todo el sistema.
Permiso de usuario: analizar el rendimiento del sistema.
SE_SYSTEMTIME_NAME
TEXT("SeSystemtimePrivilege")
Necesario para modificar la hora del sistema.
Permiso de usuario: cambiar la hora del sistema.
SE_TAKE_OWNERSHIP_NAME
TEXT("SeTakeOwnershipPrivilege")
Necesario para tomar posesión de un objeto sin que se le conceda acceso discrecional. Este privilegio permite establecer el valor del propietario solo en los valores que el titular pueda asignar legítimamente como propietario de un objeto.
Permiso de usuario: tomar posesión de archivos y otros objetos.
SE_TCB_NAME
TEXT("SeTcbPrivilege")
Este privilegio identifica a su titular como parte de la base del equipo de confianza. A algunos subsistemas protegidos de confianza se les concede este privilegio.
Permiso de usuario: actuar como parte del sistema operativo.
SE_TIME_ZONE_NAME
TEXT("SeTimeZonePrivilege")
Necesario para ajustar la zona horaria asociada al reloj interno del equipo.
Permiso de usuario: cambiar la zona horaria.
SE_TRUSTED_CREDMAN_ACCESS_NAME
TEXT("SeTrustedCredManAccessPrivilege")
Necesario para acceder al administrador de credenciales como un llamador de confianza.
Permiso de usuario: obtener acceso al administrador de credenciales como un llamador de confianza.
SE_UNDOCK_NAME
TEXT("SeUndockPrivilege")
Necesario para desacoplar un portátil.
Permiso de usuario: quitar equipo de la estación de acoplamiento.
SE_UNSOLICITED_INPUT_NAME
TEXT("SeUnsolicitedInputPrivilege")
Necesario para leer la entrada no solicitada desde un dispositivo terminal.
Permiso de usuario: no aplicable.

Comentarios

Las constantes de privilegios se definen como cadenas en Winnt.h. Por ejemplo, la constante SE_AUDIT_NAME se define como "SeAuditPrivilege".

Requisitos

Requisito Valor
Cliente mínimo compatible
Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado
Winnt.h

Consulte también

Privilegios