Utiliser iCACLS pour lister les permissions Active Directory sur un serveur de fichiers
Utiliser iCACLS pour lister les permissions sur des dossiers et gérer des fichiers
Une des tâches typiques des administrateurs Windows est de gérer les permissions NTFS sur les dossiers et les fichiers du système de fichiers. Pour gérer les permissions NTFS, vous pouvez utiliser l’interface graphique « Explorateur de fichiers » (l’onglet « Securité » dans les propriétes d’un dossier ou d’un fichier),
ou bien vous pouvez utiliser l’utilitaire en ligne de commande iCACLS inclu dans le système. Dans cet article nous allons regarder l’utilisation de commandes iCACLS pour visualiser et gérer les permissions sur les dossiers et les fichiers.
Utiliser la commande iCACLS
La commande iCACLS permet d’afficher ou de modifier une Access Control Lists (ACLs) pour des fichiers et des dossiers dans le système de fichiers. Le prédécesseur de l’utilitaire iCACLS.EXE est la commande CACLS.EXE (qui était utilisée sous Windows XP).
Pour lister les permissions actuelles sur un dossier spécifique (par exemple, C:\PS), ouvrez une invite de commande et lancez la commande :
icacls c:\PS
Cette commande va retourner une liste de tous les utilisateurs et groupes qui ont des permissions assignées à ce dossier. Essayons pour comprendre la syntaxe des permissions retournées par la commande iCACLS :
c:\PS CORP\someusername:(OI)(CI)(M) NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F) BUILTIN\Administrators:(I)(OI)(CI)(F) BUILTIN\Users:(I)(OI)(CI)(RX) CREATOR OWNER:(I)(OI)(CI)(IO)(F) Successfully processed 1 files; Failed processing 0 files
Opposed to each group and the user’s access level is specified. Les permissions d’accès sont indiquées en utilisant des abbréviations. Consider the permissions for the user CORP\someusername. Les permissions suivantes sont assignées à cet utilisateur :
- (OI) — object inherit
- (CI) — container inherit
- (M) — modify access
Cela signifie que cet utilisateur a les permissions d’écrire et de modifier des données dans ce dossier. Ces permissions sont héritées vers tous les objets enfants dans ce dossier.
Ci-dessous est une liste complète des permissions qui peuvent être appliquées en utilisant l’utilitaire iCACLS :
iCACLS inheritance settings:
- (OI) — object inherit
- (CI) — container inherit
- (IO) — inherit only
- (NP) — don’t propagate inherit
- (I) — permission inherited from parent container
Liste des permissions d’accès de base:
- D — delete access
- F — full access
- N — no access
- M — modify access
- RX — read and eXecute access
- R — read-only access
- W — write-only access
Permissions détaillées :
- DE — delete
- RC — read control
- WDAC — write DAC
- WO — write owner
- S — synchronize
- AS — access system security
- MA — maximum allowed permissions
- GR — generic read
- GW — generic write
- GE — generic execute
- GA — generic all
- RD — read data/list directory
- WD — write data/add file
- AD — append data/add subdirectory
- REA — read extended attributes
- WEA — write extended attributes
- X — execute/traverse
- DC — delete child
- RA — read attributes
- WA — write attributes
En utilisant la commande iCACLS, vous pouvez sauvegarder l’ACL courante sur un objet dans un fichier, puis appliquerla liste sauvegardée sur le même objet, ou sur d’autres objets (une sorte de méthode de sauvegarde d’ACL).
Pour exporter l’ACL courante sur le dossier C:\PS et la sauvegarder dans le fichier PS_folder_ACLs.txt file, lancez la commande:
icacls C:\PS\* /save c:\temp\PS_folder_ACLs.txt /t
Cette commande sauvegarde desACLs non seulement sur le dossier lui-même, mais aussi sur tous les sous-dossiers et fichiers. Le fichier texte résultant put être ouvert en utilisant Notepad ou n’importe quel éditeur de texte.
To apply saved access ACLs (restore permissions), run the command:
icacls C:\PS /restore c:\temp\PS_folder_ACLs.txt
Utiliser iCACLS to Grant Permissions or Change the Access Lists for the Folder
Thus, the process of ACLs transferring from one folder to another becomes much easier.
With the icacls command, you can change the access lists for the folder. For example, you want to grant the user John the permissions to edit the contents of the folder C:\PS. Execute the command:
icacls C:\PS /grant John:M
Vous pouvez retirer toutes les permissions de John en utilisant la commande :
icacls C:\PS /remove John
Also, you can prevent a user or group of users from accessing a file or folder in the way like this:
icacls c:\ps /deny "NYUsers:(CI)(M)"
Keep in mind that prohibiting rules have a higher priority than allowing rules.
Using the icacls command, you can change the owner of a directory or folder, for example:
icacls c:\ps\secret.docx /setowner John /T /C /L /Q
- /Q – do not display a success message command;
- /L – the command is executed directly above the symbolic link, not the specific object;
- /C – the execution of the command will continue despite the file errors. Error messages will still be displayed;
- /T – The command is performed for all files and directories that are located in the specified directory.
Vous pouvez changer le propriétaire de tous les fichiers dans le dossier :
icacls c:\ps\* /setowner John /T /C /L /Q
Also with icacls you can reset the current permissions on the file system objects:
ICACLS C:\ps /T /Q /C /RESET
Après l’exécution de cette commande, toutes les permissions actuelles on the file object in the specified folder will be reset and replaced with permissions inherited from the parent object.