Droits d’accès et masques d’accès

Un droit d’accès est un indicateur de bits qui correspond à un ensemble particulier d’opérations qu’un thread peut effectuer sur un objet sécurisable. Par exemple, une clé de Registre a le droit d’accès KEY_SET_VALUE, ce qui correspond à la capacité d’un thread à définir une valeur sous la clé. Si un thread tente d’effectuer une opération sur un objet, mais ne dispose pas du droit d’accès nécessaire à l’objet, le système n’effectue pas l’opération.

Un masque d’accès est une valeur 32 bits dont les bits correspondent aux droits d’accès pris en charge par un objet. Tous les objets sécurisables Windows utilisent un format de masque d’accès qui comprend des bits pour les types de droits d’accès suivants :

Lorsqu’un thread tente d’ouvrir un handle à un objet, le thread spécifie généralement un masque d’accès pour demander un ensemble de droits d’accès. Par exemple, une application qui doit définir et interroger les valeurs d’une clé de Registre peut ouvrir la clé à l’aide d’un masque d’accès pour demander les droits d’accès KEY_SET_VALUE et KEY_QUERY_VALUE.

Le tableau suivant montre les fonctions qui manipulent les informations de sécurité pour chaque type d’objet sécurisable.

Type d’objet Fonctions de descripteur de sécurité
Fichiers ou répertoires sur un système de fichiers NTFS GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Canaux nommésCanaux anonymes
GetSecurityInfo, SetSecurityInfo
Mémoires tampons d’écran de console Non pris en charge.
Processusthreads
GetSecurityInfo, SetSecurityInfo
Objets de mappage de fichiers GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Jetons d’accès SetKernelObjectSecurity, GetKernelObjectSecurity
Objets de gestion des fenêtres (stations de fenêtre et bureaux) GetSecurityInfo, SetSecurityInfo
Clés de Registre GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Services Windows GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Imprimantes locales ou distantes GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Partages réseau GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Objets de synchronisation interprocess (événements, mutex, sémaphores et minuteurs d’attente) GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Objets de travail GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo