Ce guide opérationnel explique comment verrouiller un dossier avec des permissions NTFS strictes : concepts clés, étapes concrètes dans l’interface, scripts (icacls/PowerShell), bonnes pratiques AD (AGDLP), audit, tests et pièges à éviter.
Vue d’ensemble de la question
Un administrateur met en place un serveur de fichiers et souhaite limiter l’accès à un dossier à certains utilisateurs seulement. Il se demande :
- quelles permissions NTFS attribuer,
- par quel mécanisme les définir,
- quelles sont les bonnes pratiques pour garantir la sécurité et la maintenabilité.
Réponse & solution
Accéder aux paramètres de sécurité
- Clic droit sur le dossier ▸ Propriétés ▸ onglet Sécurité ▸ Modifier.
- Pré‑requis : disposer de droits d’administration sur le serveur ou être propriétaire du dossier.
Ajouter les identités concernées
- Cliquer sur Ajouter pour sélectionner le(s) groupe(s) ou utilisateur(s) autorisés.
- Bonne pratique : travailler avec des groupes (AD ou locaux) plutôt qu’avec des comptes individuels ; cela simplifie la gestion future et les audits.
Attribuer le niveau d’accès minimal (principe du moindre privilège)
Niveau | Autorisations accordées | Cas d’usage typique |
---|---|---|
Lecture (Read) | Consultation des fichiers et de la liste du dossier | Partage documentaire en lecture seule |
Lecture & exécution (Read & Execute) | Lecture + exécution des programmes/scripts | Déploiement d’applications |
Modification (Modify) | Lecture/écriture, création/suppression dans le dossier | Équipe ayant besoin de gérer le contenu |
Contrôle total (Full Control) | Tous droits, y compris délégation de permissions | Administrateurs uniquement |
Configurer les paramètres avancés si nécessaire
- Héritage : désactivez l’héritage (Disable inheritance) pour empêcher qu’un parent plus permissif n’affecte le dossier sensible. Lors de la désactivation, choisissez Convertir les autorisations héritées en autorisations explicites.
- Permissions spéciales : accordez ou refusez des droits précis (p. ex. : interdire Delete) via Avancé ▸ Ajouter ▸ Afficher les autorisations basiques, puis basculez vers les autorisations avancées.
- Deny : utilisez le refus explicite uniquement pour bloquer un droit hérité indispensable. Rappelez‑vous que l’ordre des ACE et la distinction explicite/héritée influencent l’évaluation ; évitez les Deny globaux au profit d’autorisations minimales bien ciblées.
Valider et tester
- Cliquez sur Appliquer puis OK.
- Vérifiez avec un compte représentant chaque rôle que l’accès est conforme (lecture, écriture, blocage…). Utilisez l’onglet Avancé ▸ Accès effectif pour simuler le résultat réel.
Bonnes pratiques complémentaires
- Coupler permissions NTFS et partages réseau : côté partage (Share Permissions), laissez généralement Everyone ▸ Full Control (ou Authenticated Users ▸ Full) et laissez la restriction réelle aux permissions NTFS, plus fines.
- Journaliser l’accès : activez l’audit (Advanced ▸ Auditing) pour consigner lecture, modification ou échec d’accès lorsque le dossier contient des données sensibles.
- Sauvegardes régulières : conservez vos listes de contrôle d’accès (ACL) dans les sauvegardes ou exportez‑les avec
icacls /save
pour pouvoir les restaurer. - Documentation : tenez un tableau simple des groupes, de leur description et des dossiers auxquels ils donnent accès ; cela facilitera la maintenance et les audits.
- Révision périodique : programmez un contrôle semestriel des ACL pour supprimer les comptes obsolètes et vérifier que les droits correspondent toujours aux besoins métier.
Concepts NTFS essentiels à connaître
- DACL (Discretionary Access Control List) : liste d’ACE Allow/Deny qui déterminent les droits effectifs.
- SACL (System ACL) : règles d’audit (qui journaliser, sur quelles opérations).
- Propriétaire : l’entité (compte/groupe) qui peut toujours modifier les permissions, même sans droit Full Control. Pour les dossiers de données, définissez le propriétaire sur le groupe Administrators, pas sur un utilisateur.
- Évaluation des droits : Windows évalue les ACE explicites avant les héritées, et tient compte de l’ordre (les refus explicites sont priorisés). Un Deny mal placé peut donc bloquer un accès légitime.
- Portée des ACE : via “Appliquer à”, ciblez Ce dossier uniquement, Ce dossier, sous-dossiers et fichiers, Fichiers seulement, etc., pour contrôler la propagation.
Modèle de groupes recommandé (AGDLP)
Pour rester maintenable, appliquez le modèle AGDLP : Accounts → Global → Domain Local → Permissions.
Type | Exemple de nommage | Rôle |
---|---|---|
Compte utilisateur | u.dupond | Employé |
Groupe global (GG) | GG_RH_Contributeurs | Regroupe les utilisateurs par rôle métier |
Groupe domaine local (GDL) | GDL_Dossiers_RH_RW | Porté sur la ressource (serveur/partage), reçoit les permissions NTFS |
ACL sur le dossier | GDL_Dossiers_RH_RW → Modify | Application effective sur le dossier |
Règle d’or : ajoutez des groupes à l’ACL, jamais des utilisateurs. L’affectation des personnes se fait via appartenance au groupe global.
Étapes détaillées : méthode GUI
- Créer/choisir les groupes dans Active Directory (ou localement) : p. ex.
GDL_ProjetX_RW
etGDL_ProjetX_RO
. - Définir le partage (si nécessaire) : Everyone ou Authenticated Users ▸ Full Control. Activez si besoin l’Access‑Based Enumeration (ABE) pour masquer les dossiers non autorisés.
- Ouvrir Propriétés ▸ Sécurité ▸ Avancé du dossier cible.
- Désactiver l’héritage et choisir Convertir les entrées héritées en entrées explicites.
- Nettoyer l’ACL : supprimer Users, Authenticated Users ou Everyone s’ils ne sont pas souhaités.
- Ajouter Administrators et SYSTEM avec Full Control (Ce dossier, sous-dossiers et fichiers).
- Ajouter le groupe
GDL_ProjetX_RW
avec Modify, etGDL_ProjetX_RO
avec Read & Execute. - Optionnel : ajouter CREATOR OWNER avec Modify ciblé Sous-dossiers et fichiers uniquement pour que les fichiers créés par un utilisateur restent modifiables par leur créateur, sans lui donner Full sur le dossier racine.
- Valider, puis tester avec des comptes d’exemple et l’onglet Accès effectif.
Étapes détaillées : scripts prêts à l’emploi
icacls : configuration stricte et rapide
REM Dossier cible
set F=D:\Dossiers\ProjetX
REM Désactiver l'héritage et convertir les ACE héritées en ACE explicites
icacls "%F%" /inheritance:d
REM Protéger le dossier : Administrators & SYSTEM en Full
icacls "%F%" /grant "Administrators:(OI)(CI)F" "SYSTEM:(OI)(CI)F"
REM Groupes métier : RW et RO
icacls "%F%" /grant "Domaine\GDL_ProjetX_RW:(OI)(CI)M" "Domaine\GDL_ProjetX_RO:(OI)(CI)RX"
REM Optionnel : empêcher la suppression du dossier racine par les contributeurs
icacls "%F%" /deny "Domaine\GDL_ProjetX_RW:(DE,DC)"
REM Nettoyage des entrées larges indésirables
icacls "%F%" /remove:g "Users" "Authenticated Users" "Everyone"
REM Définir le propriétaire (sécurise la délégation)
icacls "%F%" /setowner "Administrators"
REM Vérifier
icacls "%F%"
PowerShell (natif) : sauvegarde et restauration des ACL
# Sauvegarder les ACL pour audit/rollback
icacls D:\Dossiers /save C:\ACL_Backup\acls.txt /t
# Restaurer (exige les mêmes SID)
icacls D:\Dossiers /restore C:\ACL_Backup\acls.txt </code></pre>
<h3>PowerShell (SMB & ABE)</h3>
<pre><code># Créer un partage SMB avec ABE et chiffrement si nécessaire
New-SmbShare -Name "ProjetX" -Path "D:\Dossiers\ProjetX" -FullAccess "Administrators","SYSTEM" -FolderEnumerationMode AccessBased
Set-SmbServerConfiguration -EncryptData $true # si politique de sécurité le requiert
</code></pre>
</section>
<section>
<h2>Paramétrage fin des autorisations</h2>
<div style="overflow-x:auto;">
<table>
<thead>
<tr>
<th>Permission spéciale</th>
<th>Impact</th>
<th>Quand l’utiliser</th>
</tr>
</thead>
<tbody>
<tr>
<td>Traverse folder / Execute file</td>
<td>Autorise la traversée d’arborescences sans lister</td>
<td>Masquer des sous-dossiers tout en permettant l’accès direct par chemin complet</td>
</tr>
<tr>
<td>List folder / Read data</td>
<td>Affiche le contenu du dossier</td>
<td>Lecture seule de répertoires</td>
</tr>
<tr>
<td>Create files / Write data</td>
<td>Autorise la création et modification de fichiers</td>
<td>Dossiers de travail collaboratif</td>
</tr>
<tr>
<td>Create folders / Append data</td>
<td>Création de sous-dossiers</td>
<td>Espaces projet par équipes</td>
</tr>
<tr>
<td>Delete</td>
<td>Suppression d’un objet</td>
<td>Souvent à restreindre au niveau racine (prévenir les effacements accidentels)</td>
</tr>
<tr>
<td>Delete subfolders and files</td>
<td>Suppression récursive</td>
<td>À éviter pour les rôles lecture/écriture basiques</td>
</tr>
<tr>
<td>Change permissions / Take ownership</td>
<td>Administration du contrôle d’accès</td>
<td>Réservé aux administrateurs</td>
</tr>
</tbody>
</table>
</div>
</section>
<section>
<h2>Scénarios de configuration prêts à copier</h2>
<h3>Répertoire d’équipe classique</h3>
<div style="overflow-x:auto;">
<table>
<thead>
<tr>
<th>Cible</th>
<th>Entrées ACL</th>
<th>Appliquer à</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>D:\Data\RH</td>
<td>Administrators:F, SYSTEM:F</td>
<td>Ce dossier, sous-dossiers et fichiers</td>
<td>Bloc de base</td>
</tr>
<tr>
<td>D:\Data\RH</td>
<td>GDL_RH_RW:Modify</td>
<td>Ce dossier, sous-dossiers et fichiers</td>
<td>Rôle contributeurs</td>
</tr>
<tr>
<td>D:\Data\RH</td>
<td>GDL_RH_RO:Read & Execute</td>
<td>Ce dossier, sous-dossiers et fichiers</td>
<td>Rôle lecture</td>
</tr>
<tr>
<td>D:\Data\RH</td>
<td>CREATOR OWNER:Modify</td>
<td>Sous-dossiers et fichiers uniquement</td>
<td>Le créateur garde la main sur ses fichiers</td>
</tr>
<tr>
<td>D:\Data\RH</td>
<td>GDL_RH_RW: <em>Deny Delete</em></td>
<td>Ce dossier uniquement</td>
<td>Protège le dossier racine</td>
</tr>
</tbody>
</table>
</div>
<h3>Répertoire « dropbox interne » (dépôt sans lecture)</h3>
<p>Les utilisateurs peuvent déposer des fichiers sans voir ceux des autres.</p>
<ul>
<li><strong>Dossier racine</strong> : <em>Create files/Write data</em> + <em>Write attributes</em> + <em>Traverse</em>. Pas de <em>List folder</em>.</li>
<li><strong>Administrators/SYSTEM</strong> : <em>Full Control</em>.</li>
<li><strong>Traitement</strong> : un service ou un job récupère les fichiers déposés.</li>
</ul>
</section>
<section>
<h2>Audit & conformité</h2>
<ol>
<li><strong>Activer la stratégie</strong> : dans les stratégies avancées (<em>Advanced Audit Policy</em>), activez <em>Object Access ▸ File System</em> en Succès/Échec selon votre besoin.</li>
<li><strong>Définir la SACL</strong> sur le dossier : <em>Avancé ▸ Auditing</em>, ciblez <em>WriteData</em>, <em>Delete</em>, <em>ChangePermissions</em>.</li>
<li><strong>Exploitation</strong> : consultez le journal Sécurité, filtrez sur les ID d’événements liés au système de fichiers, exportez pour corrélation SIEM.</li>
</ol>
<p><em>Astuce</em> : auditez d’abord en « Succès » pour valider la volumétrie, puis ajoutez l’« Échec » si nécessaire afin d’éviter un bruit trop important.</p>
</section>
<section>
<h2>Test, diagnostic et dépannage</h2>
<ul>
<li><strong>Accès effectif</strong> : onglet <em>Avancé ▸ Accès effectif</em> dans l’interface de sécurité.</li>
<li><strong>Jeton d’ouverture de session</strong> : la prise en compte d’un nouveau groupe nécessite une reconnexion. En PowerShell :
<pre><code>whoami /groups
klist purge # force un renouvellement Kerberos
Conflit Share vs NTFS : un « Deny » au niveau Share bloquera même un Allow NTFS. Simplifiez le partage, filtrez par NTFS. Ordre des ACE : placez les Deny spécifiques (si vraiment nécessaires) avant les Allow et gardez le minimum d’entrées.
Symptôme | Cause probable | Correctif |
---|---|---|
Un utilisateur ne voit pas un dossier attendu | Pas de List folder ou ABE activée | Donner List folder au niveau parent ou pointer le chemin direct |
Écriture impossible malgré « Modify » | Deny Delete trop large, ou conflit de portée (Ce dossier uniquement) | Ajuster la portée à Ce dossier, sous-dossiers et fichiers et limiter le Deny au dossier racine |
Des droits réapparaissent | Héritage encore actif sur un parent | Désactiver l’héritage sur le dossier sensible et convertir les ACE |
Un propriétaire modifie l’ACL sans être admin | Le propriétaire a ce pouvoir par conception | Reprendre la propriété au groupe Administrators |
Sauvegarde, restauration et documentation des ACL
Export & import avec icacls
icacls D:\Data /save C:\ACL_Backup\acls.txt /t
icacls D:\Data /restore C:\ACL_Backup\acls.txt
Inventaire rapide des ACL vers CSV
$Path = 'D:\Data'
$Report = Get-ChildItem $Path -Directory -Recurse | ForEach-Object {
$acl = Get-Acl $_.FullName
foreach ($ace in $acl.Access) {
[PSCustomObject]@{
Dossier = $_.FullName
Identité = $ace.IdentityReference
Type = $ace.AccessControlType
Droits = $ace.FileSystemRights
Hérité = $ace.IsInherited
AppliquerA = $ace.InheritanceFlags.ToString() + '/' + $ace.PropagationFlags.ToString()
}
}
}
$Report | Export-Csv C:\ACL_Backup\inventaire_acl.csv -NoTypeInformation -Encoding UTF8
Documentez aussi la sémantique de vos groupes (qui doit être dedans) et la cartographie dossier ↔ groupe ↔ niveau.
Sécurité avancée : chiffrement & transport
- BitLocker : chiffre le volume (protection au repos). Indispensable si le serveur quitte le datacenter ou pour disques externes.
- EFS (Encrypting File System) : chiffrement granulaire par fichier. À utiliser avec prudence (gestion des certificats, restauration).
- SMB : selon politique, activez la signature et/ou l’encryption SMB sur les partages sensibles.
DFS, clusters et réplication
Si vous utilisez DFS/DFSR ou un cluster de fichiers, gardez un modèle de groupes identique sur l’ensemble des nœuds. Les permissions NTFS voyagent avec les fichiers ; assurez‑vous que les SID de groupes existent sur tous les contrôleurs du domaine concerné.
Checklist de déploiement
- Créer les groupes AD (GG métier → GDL ressource).
- Configurer le partage SMB (ABE si besoin, chiffrement si politique).
- Désactiver l’héritage sur le dossier cible et convertir les ACE.
- Accorder Administrators & SYSTEM en Full.
- Ajouter GDL_RW en Modify, GDL_RO en Read & Execute.
- Optionnel : CREATOR OWNER (Subfolders & Files only).
- Limiter Delete au niveau racine si nécessaire.
- Tester Accès effectif, évaluer avec des comptes réels.
- Exporter ACL (
icacls /save
), archiver la configuration. - Planifier un audit semestriel des ACL.
FAQ rapide
Dois‑je utiliser des refus explicites ?
Seulement pour contrer un droit hérité que vous ne pouvez pas supprimer. Sinon, réduisez les droits accordés et nettoyez l’héritage.
Quelle différence entre « Modify » et « Full Control » ?
Full permet de changer les permissions et de prendre possession. Réservez‑le aux administrateurs.
Faut‑il empêcher la suppression au niveau racine ?
Oui, c’est fréquent : appliquez Deny Delete sur le dossier uniquement, pas sur les sous‑éléments, pour éviter les effacements accidentels tout en laissant la gestion du contenu.
Comment masquer un dossier à ceux qui n’y ont pas accès ?
Activez l’Access‑Based Enumeration sur le partage et évitez de donner List folder sur les parents.
Résumé exécutable
- Créer des groupes AD (GG → GDL) et y placer les utilisateurs.
- Partager le dossier (ABE si besoin), laisser le filtrage à NTFS.
- Désactiver l’héritage, convertir, nettoyer l’ACL.
- Administrators & SYSTEM : Full.
- Groupes métier : Modify / Read & Execute.
- Option : CREATOR OWNER sur sous‑éléments.
- Option : Deny Delete sur le dossier racine.
- Tester, auditer, exporter, documenter, réviser tous les 6 mois.
Ces étapes garantissent un contrôle d’accès rigoureux tout en restant flexibles et évolutives dans le temps.
Annexe : matrice « Appliquer à » la plus utile
Portée | Effet | Usage recommandé |
---|---|---|
Ce dossier uniquement | Ne s’applique qu’au répertoire racine | Protéger la structure (p. ex. Deny Delete sur RW) |
Ce dossier, sous-dossiers et fichiers | Héritage complet | Niveaux Read, Modify pour les rôles |
Sous-dossiers et fichiers uniquement | Pas d’effet sur le dossier racine | CREATOR OWNER pour que les créateurs gèrent leurs éléments |
Fichiers uniquement | Ne s’applique qu’aux fichiers | Exécuter sans lister : scénarios applicatifs |
Guide pas‑à‑pas rapide (copiable dans une procédure interne)
- Préparer GG_ProjetX_Users, GG_ProjetX_Readers → les ajouter à GDL_ProjetX_RW / GDL_ProjetX_RO.
- Créer D:\Dossiers\ProjetX. Partager « ProjetX », ABE activé.
- GUI : Propriétés ▸ Sécurité ▸ Avancé → Désactiver héritage → Convertir.
- Supprimer Users/Everyone si présents. Ajouter Administrators, SYSTEM en Full.
- Ajouter GDL_ProjetX_RW en Modify, GDL_ProjetX_RO en Read & Execute.
- Option : CREATOR OWNER (Subfolders & Files only) en Modify.
- Option : Deny Delete sur « Ce dossier uniquement » pour GDL_ProjetX_RW.
- Renseigner la documentation, exporter les ACL, planifier la révision semestrielle.