27 septembre 2023
Gestion des droits d’accès aux fichiers
Prérequis
- Une VM Windows
- Un dossier C:\Laboratoire
- Un fichier C:\Laboratoire\Exemple.txt
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
- Un utilisateur sous Windows 10 est une personne ou une entité qui se connecte au système.
- Chaque utilisateur possède un compte utilisateur unique associé à un nom d’utilisateur et un mot de passe.
- Les droits d’accès peuvent être attribués individuellement à chaque utilisateur.
Groupes
- Les groupes sont des ensembles d’utilisateurs regroupés pour simplifier la gestion des autorisations.
- Windows 10 propose des groupes prédéfinis tels que « Administrateurs », « Utilisateurs » et « Invités ».
- Les administrateurs peuvent créer des groupes personnalisés pour regrouper des utilisateurs avec des autorisations similaires.
Types de Droits d’Accès
Autorisations de Base
- Lecture : Permet à un utilisateur ou à un groupe de voir le contenu d’un fichier ou d’un dossier.
- Écriture : Autorise la modification ou la création de nouveaux fichiers et dossiers.
- Exécution : Permet l’exécution d’un fichier exécutable.
- Suppression : Permet la suppression d’un fichier ou d’un dossier.
Autorisations Avancées
- Contrôle Total : Autorise toutes les opérations sur un fichier ou un dossier, y compris la modification des autorisations.
- 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
- 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.
- Utilisation de Groupes : Il est recommandé d’attribuer des autorisations aux groupes plutôt qu’aux utilisateurs individuels, pour simplifier la gestion.
- 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
- 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.
- Protection de Fichiers Sensibles : Les fichiers contenant des informations sensibles peuvent être restreints à un groupe d’utilisateurs autorisés uniquement.
- 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:
- Full Control: Users can modify, add, move and delete files and directories, as well as their associated properties. In addition, users can change permissions settings for all files and subdirectories.
- Modify: Users can view and modify files and file properties, including deleting and adding files to a directory or file properties to a file.
- Read & Execute: Users can run executable files, including script
- Read: Users can view files, file properties and directories.
- Write: Users can write to a file and add files to directories.
Advanced Permissions
- Traverse Folder/Execute File: Allow navigation through folders, even if the user has no explicit permissions to those files or folders. Additionally, users can run executable files.
- List Folder/Read Data: The ability to view a list of files and subfolders within a folder as well as viewing the content of the files contained within.
- Read Attributes: View the attributes of a file or folder.
- Write Attributes: Change the attributes of a file or folder.
- Read Extended Attributes: View the extended attributes of a file or folder.
- Write Extended Attributes: Change the extended attributes of a file or folder.
- Create Files/Write Data: Allow creation of files within a folder, whereas write data allows changes to files within the folder.
- Create Folders/Append Data: Create folders within an existing folder and allow adding data to a file, but not change, delete, or overwrite existing data within a file.
- Delete: Ability to delete a file or folder.
- Read Permissions: Users can read the permissions of a file or folder.
- Change Permissions: Users can change the permissions of a file or folder.
- Take Ownership: Users can take ownership of a file or folder.
- Synchronize: Use a file or folder for synchronization. This enables a thread to wait until the object is in the signaled state.
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é.