Tabla LockPermissions
La tabla LockPermissions se usa para proteger partes determinadas de una aplicación en un entorno bloqueado. Se puede usar con la instalación de archivos, claves del registro y carpetas creadas.
Un paquete destinado a la instalación en Windows Server 2008 R2 o Windows 7 debe usar la tabla MsiLockPermissionsEx en lugar de la tabla LockPermissions. Las versiones de Windows Installer anteriores a Windows Installer 5.0 omiten la tabla MsiLockPermissionsEx. Windows Installer 5.0 puede instalar un paquete que contenga la tabla LockPermissions. A partir de Windows Installer 5.0, se produce un error en la instalación de un paquete que contiene la tabla MsiLockPermissionsEx y la tabla LockPermissions y devuelve el mensaje de error de 1941 en Windows Installer.
La tabla LockPermissions tiene las columnas siguientes.
Columna | Tipo | Clave | Admisión de valores NULL |
---|---|---|---|
LockObject | Identificador | Y | No |
Tabla | Texto | Y | No |
Dominio | Formato | Y | Y |
Usuario | Formato | Y | No |
Permiso | DoubleInteger | N | Y |
Columnas
-
LockObject
-
Esta columna y la columna Table indican juntos el archivo, el directorio o la clave de registro que se va a proteger. La columna LockObject es una clave externa que apunta a la clave principal de la tabla especificada por la columna Tabla.
-
Table
-
Esta columna y la columna LockObject indican juntos el archivo, el directorio o la clave de registro que se va a proteger. En la columna Table, escriba File, Registry o CreateFolder para indicar un LockObject que aparezcan en la tabla File, la tabla Registry o la tabla CreateFolder.
-
Dominio
-
Columna que identifica el dominio del usuario para el que se van a habilitar los permisos. Este es el nombre de una máquina independiente o un nombre de dominio. El tipo de dato de columna es Formatted y puede usar la cadena [%USERDOMAIN] en este campo para obtener el valor de la variable de entorno USERDOMAIN para el dominio actual. Para obtener cualquier otro dominio, es necesario usar Acciones personalizadas. Para obtener más información, consulte la tabla Acciones personalizadas.
-
Usuario
-
Columna que identifica el nombre localizado del usuario para el que se van a habilitar los permisos. Este nombre debe encontrarse en el equipo o dominio. Se produce un error en la instalación si la máquina o el controlador de dominio no reconocen la combinación de usuario y dominio o si no se puede recuperar el identificador de seguridad (SID) del usuario. Se pueden indicar varios usuarios para un único LockObject.
Los nombres de usuario comunes "Todos" ("Everyone") y "Administradores" ("Administrators") pueden escribirse en inglés y se asignan a SID conocidos. LocalSystem tiene control total en todos los descriptores de seguridad creados a través de la tabla LockPermissions. Puede usar la propiedad ComputerName, la propiedad LogonUser o la propiedad USERNAME en este campo para obtener el usuario actual. Se debe realizar una acción personalizada para escribir el nombre localizado de cualquier otro usuario o grupo.
Puede usar varios registros con entradas LockObject y Table idénticas (pero diferentes entradas de usuario) para indicar listas de control de acceso para varios usuarios.
-
Permiso
-
Columna que identifica la descripción en enteros de los privilegios del sistema. A continuación se presentan los valores más usados (hay una lista completa en Winnt.h).
Privilegio Descripción GENERIC_ALL
0X10000000
268435456Acceso de lectura, escritura y ejecución GENERIC_EXECUTE
0X20000000
536870912Acceso de ejecución GENERIC_WRITE
0X40000000
1073741824Acceso de escritura No se puede especificar GENERIC_READ en la columna Permission. Si se intenta hacer, se producirá un error. En su lugar, debe indicar un valor como KEY_READ o FILE_GENERIC_READ.
Los valores nulos introducidos en esta columna se reservan para usarlos más adelante.
Comentarios
Las acciones InstallFiles, WriteRegistryValues y CreateFolders en las tablas de secuencia procesan la información de esta tabla. Para obtener información sobre cómo usar las tablas de secuencia, consulte Uso de una tabla de secuencia.
El permiso solo se puede habilitar en la tabla LockPermissions para los usuarios que ya existen en el equipo o dominio. Si se intenta habilitar permisos para un usuario desconocido, se generará un error en la instalación, aunque esa cuenta de usuario se cree durante la instalación mediante una acción personalizada pospuesta.
Se recomienda incluir el grupo local del administrador del sistema en todas las listas de control de acceso (ACL). Esto garantiza que el administrador del sistema pueda acceder a los objetos y mantenerlos.
Cada archivo, clave del registro o directorio que aparece en la tabla LockPermissions recibe un descriptor de seguridad explícito, tanto si reemplaza un objeto existente como si no. Windows Installer intenta velar por la seguridad de los objetos que ya existen en el sistema. Si un objeto no aparece en la tabla LockPermissions y reemplaza un objeto existente, a esta acción de reemplazo se le aplicará la configuración de seguridad del objeto que reemplaza.
Si un objeto no aparece en la tabla LockPermissions y no reemplaza un objeto existente, no recibirá ningún descriptor de seguridad explícito. El acceso al nuevo objeto se basa en los atributos de su objeto principal o contenedor. Si un objeto no aparece en la tabla y reemplaza un objeto sin ningún descriptor de seguridad explícito, el acceso al nuevo objeto se basará en los atributos de su objeto principal o contenedor.
Windows Installer establece la propiedad UserSID en el identificador de seguridad (SID) o en el usuario que ejecuta la instalación.
Validation