Table LockPermissions

La table LockPermissions est utilisée pour sécuriser des parties individuelles d’une application dans un environnement verrouillé. Il peut être utilisé avec l’installation de fichiers, de clés de registre et de dossiers créés.

Un package destiné à l’installation dans Windows Server 2008 R2 ou Windows 7 doit utiliser la table MsiLockPermissionsEx plutôt que la table LockPermissions. Les versions de Windows Installer antérieures à Windows Installer 5.0 ne reconnaissent pas la table MsiLockPermissionsEx. Windows Installer 5.0 peut installer un package contenant la table LockPermissions. À partir de la version Windows Installer 5.0, l’installation d’un package contenant les tables MsiLockPermissionsEx et LockPermissions échoue et renvoie le message d’erreur « Windows Installer 1941 ».

La table LockPermissions comporte les colonnes suivantes :

Colonne Type Clé Nullable
LockObject Identificateur O N
Table Texte O N
Domain Mis en forme A A
Utilisateur Mis en forme O N
Autorisation DoubleInteger N O

 

Colonnes

LockObject

Cette colonne et la colonne « Table » spécifient ensemble le fichier, le répertoire ou la clé de registre à sécuriser. La colonne « LockObject » est une clé étrangère qui pointe vers la clé primaire de la table spécifiée par la colonne « Table ».

Table

Cette colonne et la colonne « LockObject » spécifient ensemble le fichier, le répertoire ou la clé de registre à sécuriser. Dans la colonne « Table », entrez Fichier, Registre ou CreateFolder pour spécifier un LockObject répertorié dans la table de fichiers, la table de registre ou la table CreateFolder.

Domaine

Colonne qui identifie le domaine de l’utilisateur pour lequel les autorisations doivent être définies. Il s’agit du nom d’une machine autonome ou d’un nom de domaine. Le type de données de colonne est Mis en forme et vous pouvez utiliser la chaîne [%USERDOMAIN] dans ce champ pour obtenir la valeur de la variable d’environnement USERDOMAIN pour le domaine actuel. Pour obtenir tout autre domaine, vous devez utiliser des actions personnalisées. Pour en savoir plus, consultez la table « Actions personnalisées ».

Utilisateur

Colonne qui identifie le nom localisé de l’utilisateur pour lequel les autorisations doivent être définies. Ce nom doit se trouver sur l’ordinateur ou le domaine. L’installation échoue si l’ordinateur ou le contrôleur de domaine ne reconnaît pas le domaine et la combinaison utilisateur ou si l’identificateur de sécurité de l’utilisateur (SID) ne peut pas être récupéré. Plusieurs utilisateurs peuvent être spécifiés pour un même LockObject.

Les noms d’utilisateurs communs « Everyone » et « Administrators » peuvent être saisis en anglais et sont mappés à des SID connus. LocalSystem reçoit un contrôle total dans tous les descripteurs de sécurité créés via la table « LockPermissions ». Vous pouvez utiliser la propriété ComputerName, la propriété LogonUser ou la propriété USERNAME dans ce champ pour obtenir l'utilisateur actuel. Une action personnalisée est nécessaire pour saisir le nom localisé d’un autre utilisateur ou groupe.

Vous pouvez utiliser plusieurs enregistrements avec des entrées LockObject et Table identiques (mais différentes entrées utilisateur) pour définir des listes de contrôle d’accès pour plusieurs utilisateurs.

Permission

Colonne qui identifie la description des entiers des privilèges système. Voici les valeurs les plus couramment utilisées (une liste complète est disponible dans Winnt.h).

Privilege Description
GENERIC_ALL
0X10000000
268435456
Accès en lecture, en écriture et en exécution
GENERIC_EXECUTE
0X20000000
536870912
Exécuter l’accès
GENERIC_WRITE
0X40000000
1073741824
Accès en écriture

 

Vous ne pouvez pas spécifier GENERIC_READ dans la colonne « Autorisation ». Toute tentative se soldera par un échec. Vous devez spécifier une valeur telle que KEY_READ ou FILE_GENERIC_READ.

La valeur nulle saisie dans cette colonne est réservée pour une utilisation ultérieure.

Notes

Les actions InstallFiles, WriteRegistryValues et CreateFolders dans les tables de séquence traitent les informations de cette table. Pour plus d’informations sur l’utilisation de tables de séquences, reportez-vous à la rubrique « Utilisation d’une table de séquences ».

L’autorisation ne peut être définie que dans la table « LockPermissions » pour les utilisateurs existants sur l’ordinateur ou le domaine. Une tentative de définition des autorisations pour un utilisateur inconnu entraîne l’échec de l’installation, même si ce compte d’utilisateur est créé pendant l’installation par une action personnalisée différée.

Il est recommandé d’inclure le groupe local de l’administrateur système dans toutes les listes de contrôle d’accès (ACL). Cela garantit que l’administrateur système peut accéder aux objets et les gérer.

Chaque fichier, clé de registre ou répertoire répertorié dans la table « LockPermissions » reçoit un descripteur de sécurité explicite, qu’il remplace un objet existant ou non. Windows Installer tente de préserver la sécurité sur les objets existants sur le système. Si un objet n’est pas répertorié dans la table « LockPermissions » et remplace un objet existant, les paramètres de sécurité de l'objet qu'il remplace s'appliqueront.

Si un objet n’est pas répertorié dans la table « LockPermissions » et ne remplace pas un objet existant, il ne reçoit aucun descripteur de sécurité explicite. L’accès au nouvel objet est basé sur les attributs de son objet parent ou conteneur. Si un objet n’est pas répertorié dans la table et remplace un objet sans descripteur de sécurité explicite, l’accès au nouvel objet est basé sur les attributs de son objet parent ou conteneur.

Windows Installer définit la propriété UserSID sur l’identificateur de sécurité (SID) ou l’utilisateur exécutant l’installation.

Validation

ICE03
ICE06
ICE46
ICE55