Cacls

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Droits NTFS en ligne de commande (legacy)
Commande cacls — remplacé par icacls
Contexte Équivalent Windows de chmod/ACL côté Linux
Voir aussi ACL (équivalent Linux)

cacls gère les droits NTFS d'un fichier ou répertoire en ligne de commande. Cet outil est déprécié depuis Windows Vista/2008 au profit d'icacls, plus complet et plus fiable sur les héritages de droits — cacls reste documenté ici car encore présent sur de nombreux systèmes legacy et largement référencé dans des scripts existants.

Lister les droits

cacls c:\test

Accorder des droits

cacls c:\test /E /G benoit:F
cacls c:\test /E /G WORKGROUP\magalie:F
cacls test /E /T /G benoit:C
  • /E — édite la liste de contrôle d'accès existante au lieu de la remplacer entièrement (à toujours utiliser, sous peine d'écraser les droits déjà en place)
  • /T — applique récursivement aux sous-répertoires
  • /G utilisateur:droit — accorde un droit (F = contrôle total, C = modification, R = lecture seule, W = écriture)

Réduire ou retirer des droits

cacls c:\test /E /P benoit:C
cacls c:\test /E /R benoit
cacls c:\test /E /D benoit
  • /P — remplace les droits existants de l'utilisateur par les nouveaux (au lieu de les cumuler)
  • /R — retire l'utilisateur de la liste de contrôle d'accès
  • /D — refuse explicitement l'accès à l'utilisateur (différent de `/R` : un refus explicite prime toujours sur une autorisation)

Alternative moderne : icacls

icacls c:\test /grant benoit:(F)
icacls c:\test /grant:r benoit:(M) /T
icacls c:\test /remove benoit

icacls gère correctement l'héritage des droits (ce que `cacls` fait mal) et permet de sauvegarder/restaurer un jeu de droits complet (icacls /save / icacls /restore) — à privilégier pour tout nouveau script.

Voir aussi

  • ACL — équivalent Linux (getfacl/setfacl)