420-1C5 : Windows – Droits d’accès aux fichiers

27 septembre 2023

Gestion des droits d’accès aux fichiers

Prérequis


Introduction

La gestion des droits d’accès aux fichiers et dossiers est un aspect crucial de l’administration des systèmes d’exploitation modernes, y compris Windows 10. Les droits d’accès déterminent qui peut voir, modifier, supprimer ou exécuter des fichiers et dossiers sur un système. Windows 10 utilise un système de contrôle d’accès basé sur des objets Utilisateur et Groupe pour gérer ces autorisations. Dans ce cours, nous explorerons les concepts clés liés à la gestion des droits d’accès sous Windows 10.


Les Objets Utilisateur et Groupe

Utilisateurs

Groupes


Types de Droits d’Accès

Autorisations de Base

  1. Lecture : Permet à un utilisateur ou à un groupe de voir le contenu d’un fichier ou d’un dossier.
  2. Écriture : Autorise la modification ou la création de nouveaux fichiers et dossiers.
  3. Exécution : Permet l’exécution d’un fichier exécutable.
  4. Suppression : Permet la suppression d’un fichier ou d’un dossier.

Autorisations Avancées

  1. Contrôle Total : Autorise toutes les opérations sur un fichier ou un dossier, y compris la modification des autorisations.
  2. Modifier les autorisations : Permet de modifier les droits d’accès d’un fichier ou d’un dossier sans avoir besoin de contrôle total.

Attribution des Autorisations

  1. Accéder aux Propriétés : Cliquez avec le bouton droit sur un fichier ou un dossier, sélectionnez « Propriétés » et accédez à l’onglet « Sécurité » pour afficher et modifier les autorisations.
  2. Utilisation de Groupes : Il est recommandé d’attribuer des autorisations aux groupes plutôt qu’aux utilisateurs individuels, pour simplifier la gestion.
  3. Héritage des Autorisations : Par défaut, les sous-dossiers et fichiers héritent des autorisations du dossier parent. Vous pouvez désactiver l’héritage si nécessaire.

Exemples de Scénarios

  1. Partage de Dossiers : Vous pouvez partager un dossier avec un groupe spécifique d’utilisateurs en leur accordant des droits de lecture ou d’écriture.
  2. Protection de Fichiers Sensibles : Les fichiers contenant des informations sensibles peuvent être restreints à un groupe d’utilisateurs autorisés uniquement.
  3. Accès aux Ressources Réseau : Les droits d’accès peuvent être configurés pour déterminer qui peut accéder aux ressources partagées sur un réseau.

Démonstration de l’enseignant

À partir du dossier « Laboratoire » – Exploration adlib des paramètres du panneau sécurité:


À cette étape, il n’y a que Tintin qui a accès au dossier Laboratoire.

Voici ce que donne une tentative d’accès avec le compte principal:


Autorisation avancée (spéciale)


Permissions via Powershell

Il est possible de modifier les droits d’accès à un objet à partir d’un terminal PowerShell.

Sous Windows, les droits sont gérés via un schéma nommé ACL pour ‘Access Control List‘.

Voir le documentation de Microsoft


Voici une courte introduction aux ACLs via PowerShell

1 – Obtenir la liste des permissions sous ACL

PS C:\> [System.Enum]::GetNames([System.Security.AccessControl.FileSystemRights])
ListDirectory
ReadData
WriteData
CreateFiles
CreateDirectories
AppendData
ReadExtendedAttributes
WriteExtendedAttributes
Traverse
ExecuteFile
DeleteSubdirectoriesAndFiles
ReadAttributes
WriteAttributes
Write
Delete
ReadPermissions
Read
ReadAndExecute
Modify
ChangePermissions
TakeOwnership
Synchronize
FullControl
PS C:\Users\Alain\Documents>

Description sommaire des items de la liste des droits:

Advanced Permissions


2 – Obtenir l’ACL d’un objet:

PS C:\Users\Alain\Documents> Get-ACL \Laboratoire

Path        Owner                 Access
----        -----                 ------
Laboratoire DESKTOP-H8FTBBV\Alain DESKTOP-H8FTBBV\Alain Allow  FullControl...


# Remarquez qu'il n'y a que le propriétaire de l'objet dans la liste.
# Pour avoir plus d'information:

PS C:\> (Get-ACL -Path "\Laboratoire").Access | Format-Table IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags -AutoSize

IdentityReference                 FileSystemRights AccessControlType IsInherited                InheritanceFlags
-----------------                 ---------------- ----------------- -----------                ----------------
DESKTOP-H8FTBBV\Alain                  FullControl             Allow       False ContainerInherit, ObjectInherit
DESKTOP-H8FTBBV\Tintin ReadAndExecute, Synchronize             Allow       False ContainerInherit, ObjectInherit

# Et pour un fichier:

​PS C:\> (Get-ACL -Path "C:\Laboratoire\Exemple.txt").Access | Format-Table IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags -AutoSize

IdentityReference                 FileSystemRights AccessControlType IsInherited InheritanceFlags
-----------------                 ---------------- ----------------- ----------- ----------------
DESKTOP-H8FTBBV\Tintin ReadAndExecute, Synchronize             Allow        True             None
DESKTOP-H8FTBBV\Alain                  FullControl             Allow        True             None

3 – Modifier l’ACL d’un objet

# Ajouter à l'utilisateur Tintin, le droit d'écriture au fichier \Laboratoire\Exemple.txt

$ACL = Get-ACL -Path "\Laboratoire\Exemple.txt"
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("Tintin","Write","Allow")
$ACL.SetAccessRule($AccessRule)
$ACL | Set-Acl -Path "\Laboratoire\Exemple.txt"
(Get-ACL -Path "\Laboratoire\Exemple.txt").Access | Format-Table IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags -AutoSize

IdentityReference                 FileSystemRights AccessControlType IsInherited InheritanceFlags
-----------------                 ---------------- ----------------- ----------- ----------------
DESKTOP-H8FTBBV\Tintin          Write, Synchronize             Allow       False             None
DESKTOP-H8FTBBV\Tintin ReadAndExecute, Synchronize             Allow        True             None
DESKTOP-H8FTBBV\Alain                  FullControl             Allow        True             None

DÉFI à réaliser en classe: Utiliser une variable pour le lien vers le fichier à modifier dans l’exemple précédent.

Il est possible de bien plus en niveau des ACLs, via PowerShell; heritage, retrait de droits, copie de droits, …, mais cela dépasse un peu les objectifs de ce cours 😉.


Conclusion

La gestion des droits d’accès aux fichiers et dossiers sous Windows 10 est essentielle pour assurer la sécurité et la confidentialité des données. En utilisant les objets Utilisateur et Groupe, les administrateurs peuvent gérer efficacement qui a accès à quoi sur un système Windows 10. Il est important de planifier et de documenter la stratégie de gestion des droits d’accès pour maintenir un environnement informatique sécurisé.