Gestion des droits d'accès sous Windows
# **Gestion des droits via cmd
**
## afficher des droits d’un dossier / fichier
```cmd
icacls
```
- exemple:
```cmd
icacls F:\Téléchargement
```
---
## ajouter des droits à un dossier / fichier
```cmd
icacls /grant : (droits à ajouter)
```
- exemple:
```cmd
icacls F:\Téléchargement /grant Administrator:(D,RX)
```
>liste des droits:
> N - no access
> F - full access
> M - modify access
> RX - read and execute access
> R - read-only access
> W - write-only access
> D - delete access
---
## ajouter des interdictions à un dossier / fichier
```cmd
icacls /deny : (interdiction à ajouter)
```
- exemple:
```cmd
icacls F:\Téléchargement /deny Frederic:(D,RX)
```
### liste des droits utilisables:
| Code | Droits d'accès correspondant |
| ---- | ---------------------------- |
| N | no access |
| F | full access |
| M | modify access |
| RX | read and execute access |
| R | read-only access |
| W | write-only access |
| D | delete access |
---
# **Gestion des droits via Powershell
**
## afficher des droits d’un dossier / fichier
```powershell
Get-Acl
```
- exemple
```powershell
Get-Acl m:\2022
```
## copier des droits d’un dossier / fichier sur un autre
```powershell
Get-acl -Path |Set-Acl -Path
```
- exemple:
```powershell
Get-Acl -Path "C:\Dog.txt" | Set-Acl -Path "C:\Cat.txt"
```
## Gérer les droit (ACL)
- prérequis: installation du module powershell ntfssecurity
```powershell
Install-Module NTFSSecurity
```
### Ajouter des droits
```powershell
Add-NTFSAccess -Path "dossier_cible" -AccessRight "type_de_droits" -Account "groupe_de_domaine_local_souhaité"
```
### lister les droits
```powershell
Get-NTFSAccess "dossier_cible" |format-Table -Wrap
```
### liste des droits utilisables:
| Paramètre | Effet |
|------------------------------------|---------------------------------------------------------------|
| AppendData | Autorise l'ajout de données à un fichier existant. |
| ChangePermissions | Permet de modifier les permissions d'un fichier/dossier. |
| CreateFiles | Autorise la création de nouveaux fichiers. |
| Delete | Permet la suppression du fichier/dossier. |
| DeleteSubdirectoriesAndFiles | Autorise la suppression des sous-dossiers et fichiers. |
| FullControl | Donne un contrôle total sur le fichier/dossier. |
| GenericAll | Regroupe toutes les autorisations. |
| GenericExecute | Permet l'exécution d'un fichier ou la traversée d'un dossier.|
| GenericRead | Permet de lire un fichier et ses attributs. |
| GenericWrite | Autorise l'écriture et la modification d'un fichier. |
| Modify | Inclut Read, Write, Execute et Delete. |
| None | Aucun accès. |
| Read | Permet uniquement la lecture des données. |
| ReadAndExecute | Combine Read et Execute. |
| ReadAttributes | Autorise la lecture des attributs du fichier/dossier. |
| ReadData | Permet la lecture du contenu du fichier. |
| ReadExtendedAttributes | Permet la lecture des attributs étendus. |
| ReadPermissions | Autorise la lecture des permissions d'un fichier/dossier. |
| Synchronize | Utilisé pour la synchronisation des accès avec d'autres processus. |
| TakeOwnership | Permet de prendre possession d'un fichier/dossier. |
| Traverse | Autorise la traversée d'un dossier sans en voir le contenu. |
| Write | Permet d'écrire et de modifier un fichier. |
| WriteAttributes | Autorise la modification des attributs du fichier/dossier. |
| WriteExtendedAttributes | Permet de modifier les attributs étendus. |