Permissions NTFS strictes : guide complet et bonnes pratiques pour sécuriser un dossier Windows Server

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.

Sommaire

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)

NiveauAutorisations accordéesCas d’usage typique
Lecture (Read)Consultation des fichiers et de la liste du dossierPartage documentaire en lecture seule
Lecture & exécution (Read & Execute)Lecture + exécution des programmes/scriptsDé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 permissionsAdministrateurs 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.

TypeExemple de nommageRôle
Compte utilisateuru.dupondEmployé
Groupe global (GG)GG_RH_ContributeursRegroupe les utilisateurs par rôle métier
Groupe domaine local (GDL)GDL_Dossiers_RH_RWPorté sur la ressource (serveur/partage), reçoit les permissions NTFS
ACL sur le dossierGDL_Dossiers_RH_RW → ModifyApplication 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

  1. Créer/choisir les groupes dans Active Directory (ou localement) : p. ex. GDL_ProjetX_RW et GDL_ProjetX_RO.
  2. Définir le partage (si nécessaire) : Everyone ou Authenticated UsersFull Control. Activez si besoin l’Access‑Based Enumeration (ABE) pour masquer les dossiers non autorisés.
  3. Ouvrir Propriétés ▸ Sécurité ▸ Avancé du dossier cible.
  4. Désactiver l’héritage et choisir Convertir les entrées héritées en entrées explicites.
  5. Nettoyer l’ACL : supprimer Users, Authenticated Users ou Everyone s’ils ne sont pas souhaités.
  6. Ajouter Administrators et SYSTEM avec Full Control (Ce dossier, sous-dossiers et fichiers).
  7. Ajouter le groupe GDL_ProjetX_RW avec Modify, et GDL_ProjetX_RO avec Read & Execute.
  8. 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.
  9. 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 &amp; 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 &amp; 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 «&nbsp;dropbox interne&nbsp;» (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>&nbsp;: <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>&nbsp;: <em>Full Control</em>.</li>
    <li><strong>Traitement</strong>&nbsp;: un service ou un job récupère les fichiers déposés.</li>
  </ul>
</section>

<section>
  <h2>Audit &amp; conformité</h2>
  <ol>
    <li><strong>Activer la stratégie</strong>&nbsp;: 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&nbsp;: <em>Avancé ▸ Auditing</em>, ciblez <em>WriteData</em>, <em>Delete</em>, <em>ChangePermissions</em>.</li>
    <li><strong>Exploitation</strong>&nbsp;: 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>&nbsp;: auditez d’abord en «&nbsp;Succès&nbsp;» pour valider la volumétrie, puis ajoutez l’«&nbsp;Échec&nbsp;» 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>&nbsp;: onglet <em>Avancé ▸ Accès effectif</em> dans l’interface de sécurité.</li>
    <li><strong>Jeton d’ouverture de session</strong>&nbsp;: la prise en compte d’un nouveau groupe nécessite une reconnexion. En PowerShell&nbsp;:
      <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ômeCause probableCorrectif
Un utilisateur ne voit pas un dossier attenduPas de List folder ou ABE activéeDonner 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éapparaissentHéritage encore actif sur un parentDésactiver l’héritage sur le dossier sensible et convertir les ACE
Un propriétaire modifie l’ACL sans être adminLe propriétaire a ce pouvoir par conceptionReprendre 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

  1. Créer des groupes AD (GG → GDL) et y placer les utilisateurs.
  2. Partager le dossier (ABE si besoin), laisser le filtrage à NTFS.
  3. Désactiver l’héritage, convertir, nettoyer l’ACL.
  4. Administrators & SYSTEM : Full.
  5. Groupes métier : Modify / Read & Execute.
  6. Option : CREATOR OWNER sur sous‑éléments.
  7. Option : Deny Delete sur le dossier racine.
  8. 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éeEffetUsage recommandé
Ce dossier uniquementNe s’applique qu’au répertoire racineProtéger la structure (p. ex. Deny Delete sur RW)
Ce dossier, sous-dossiers et fichiersHéritage completNiveaux Read, Modify pour les rôles
Sous-dossiers et fichiers uniquementPas d’effet sur le dossier racineCREATOR OWNER pour que les créateurs gèrent leurs éléments
Fichiers uniquementNe s’applique qu’aux fichiersExécuter sans lister : scénarios applicatifs

Guide pas‑à‑pas rapide (copiable dans une procédure interne)

  1. Préparer GG_ProjetX_Users, GG_ProjetX_Readers → les ajouter à GDL_ProjetX_RW / GDL_ProjetX_RO.
  2. Créer D:\Dossiers\ProjetX. Partager « ProjetX », ABE activé.
  3. GUI : Propriétés ▸ Sécurité ▸ AvancéDésactiver héritageConvertir.
  4. Supprimer Users/Everyone si présents. Ajouter Administrators, SYSTEM en Full.
  5. Ajouter GDL_ProjetX_RW en Modify, GDL_ProjetX_RO en Read & Execute.
  6. Option : CREATOR OWNER (Subfolders & Files only) en Modify.
  7. Option : Deny Delete sur « Ce dossier uniquement » pour GDL_ProjetX_RW.
  8. Renseigner la documentation, exporter les ACL, planifier la révision semestrielle.
Sommaire