Protección de recursos

La funcionalidad de Windows Installer para establecer permisos de acceso en servicios, archivos, carpetas creadas y entradas del Registro puede ayudar a que las aplicaciones de instalación sean más seguras. El uso de las tablas MsiLockPermissionsEx o LockPermissions para proteger los recursos es una de las directrices recomendadas para crear instalaciones seguras. La tabla MsiLockPermissionsEx puede permitir que el autor de un paquete proteja un recurso sin tener que escribir una acción personalizada.

A partir de los paquetes desarrollados para Windows Installer 5.0, la tabla MsiLockPermissionsEx debe reemplazar el uso de la tabla LockPermissions. La funcionalidad extendida que proporciona la tabla MsiLockPermissionsEx permite que un paquete proteja los servicios de Windows, los archivos, las carpetas y las claves del Registro. No es aconsejable que un paquete contenga las tablas MsiLockPermissionsEx y LockPermissions.

Tanto Windows Installer 4.5 como las versiones anteriores omiten la tabla MsiLockPermissionsEx. A partir de Windows Installer 5.0, la instalación no se realiza y aparece un mensaje de error 1941 si el paquete contiene una tabla LockPermissions y una tabla MsiLockPermissionsEx. Los paquetes de instalación existentes que contienen solo la tabla LockPermissions se pueden instalar con Windows Installer 5.0.

Windows Installer 5.0 procesa la información de la tabla MsiLockPermissionsEx cuando ejecuta las acciones estándar InstallFiles, InstallServices, WriteRegistryValues y CreateFolders. Un objeto protegible debe instalarse o volver a instalarse para protegerse y no es posible anexar una lista de control de acceso (ACL) a un objeto existente sin volver a instalar ese objeto.

Para especificar el servicio, el archivo, el directorio o la clave del Registro que se va a proteger, escriba la información de identificación en los campos LockObject y Table de la tabla MsiLockPermissionsEx . Un objeto se identifica mediante su clave principal en la tabla ServiceInstall, la tabla File, la tabla Registry o la tabla CreateFolder.

Para solicitar que se apliquen permisos especificados a un objeto, escriba una cadena de descriptor de seguridad válida en el campo SDDLText de la tabla MsiLockPermissionsEx mediante un idioma de definición de descriptor de seguridad (SDDL) válido. La tabla MsiLockPermissionsEx puede especificar un descriptor de seguridad que deniega permisos, especifica la herencia de permisos de un recurso principal o especifica los permisos de una nueva cuenta. Para obtener una lista de todos los permisos que se pueden conceder, denegar o heredar, consulte Cadenas ACE. Windows Installer 5.0 amplía el conjunto de identificadores de seguridad (SID) disponibles. Para obtener una lista de los SID válidos, consulte Cadenas de SID.

Nota:

Si desea configurar el descriptor de seguridad de un recurso principal para especificar que los objetos secundarios heredan sus permisos, el instalador debe aplicar permisos al recurso principal antes de crear los objetos secundarios. Si el instalador crea los objetos secundarios antes de aplicar los permisos heredables al recurso principal, los permisos del recurso principal no se propagarán a los objetos secundarios.

A partir de Windows Installer 5.0, el tipo de datos FormattedSDDLText amplía el tipo de datos Formatted. Windows Installer valida que la cadena FormattedSDDLText especificada en la columna SDDLText de la tabla MsiLockPermissionsEx se ajusta al formato de cadena del descriptor de seguridad.

Windows Installer 4.5 o versiones anteriores: no compatibles. La tabla MsiLockPermissionsEx y el tipo de datos FormattedSDDLText están disponibles a partir de Windows Installer 5.0.