Vous êtes sur la page 1sur 10

Un didacticiel sur les permissions NTFS

- Fonctionnement des permissions NTFS :


Rappelons que les principes expliqués dans ce chapitre ne sont valables que si votre partition est en
NTFS. À chaque ouverture de session, le nom de l'utilisateur et, éventuellement, son mot de passe
sont transmis à un moniteur de sécurité local qui accède à la gestion des comptes de sécurité (SAM,
Security Account Manager) et génère un jeton d'accès (Token). Il est ainsi systématiquement vérifié si
l'utilisateur possède les droits d'accès à un objet sélectionné (cela peut être un dossier, un fichier, un
logiciel, une stratégie de groupe, une clé du Registre ou une tâche planifiée).
La distinction entre les objets simples et les objets conteneurs est faite. Ce rapport contenant/contenu
(à la manière d'un dossier qui peut contenir plusieurs fichiers) permet de spécifier le mécanisme
d'héritage qui les relie. Bref, un masque de permissions valable pour un objet parent s'applique par
défaut aux objets enfants. Par exemple, les règles qui régissent la sécurité d'un dossier s'appliqueront
à l'ensemble de ses sous-dossiers. Un descripteur de sécurité liste l'ensemble des autorisations et
des restrictions pour chaque objet du système et pour les utilisateurs ou les groupes d'utilisateurs qui
sont concernés. Pour chaque objet, la liste d'utilisateurs qui y est attachée est appelée ACL (Access
Control List). Par exemple, j'ai l'autorisation de lecture sur tel fichier mais pas d'écriture. Nous ne
pouvons donc en aucune façon modifier ce document. Nous pouvons ainsi définir un masque de
permissions (autorisations ou interdictions) pour chaque objet "sécurisable". Ce descripteur de
sécurité vérifie ces deux informations :
* Le SID du propriétaire de l'objet : c'est le numéro permettant d'identifier chacun des "acteurs"
opérant sur votre système (utilisateurs, groupes d'utilisateurs ou entités système appelés aussi
groupes globaux).
* La liste de contrôle d'accès discrétionnaire (DACL) : c'est une liste d'entrées qui filtre les accès en
fonction de chaque SID. Elle est à la discrétion du propriétaire de l'objet. En termes clairs, c'est lui qui
définit le jeu des permissions NTFS sur un objet.

- Afficher les permissions NTFS :


Par défaut, l'onglet Sécurité n'est pas visible.
1) Dans l'Explorateur Windows, cliquez sur Outils/Options des dossiers, puis sur l'onglet Affichage.
2) Dans la rubrique Paramètres avancés, décochez la case Utiliser le partage de fichiers simple
(recommandé).
3) Avec le bouton droit de la souris, cliquez sur un fichier puis sur la commande Propriétés et l'onglet
Sécurité.
Vous pouvez faire la même manipulation sur un dossier ou un lecteur en cliquant sur le sous-menu
Partage et sécurité, ou la commande Propriétés.

- Visualiser les permissions NTFS sur Windows XP Édition Familiale :


Rappelons que votre partition doit être en NTFS.
1) Redémarrez votre ordinateur en tapant sur la touche F8.
2) Dans le menu de démarrage, sélectionnez la commande Mode sans échec et validez en appuyant
sur la touche Entrée.
3) À partir du mode Sans échec, ouvrez une session sur le compte Administrateur.

- Ajouter l'onglet Sécurité sur Windows XP Édition Familiale :


1) Téléchargez ce fichier exécutable à cette adresse : ftp://ftp.microsoft.com/bussys/winnt/winnt-
public/tools/scm/scesp4i.exe.
2) Décompressez-le à l'emplacement de votre choix.
3) Avec le bouton droit de la souris, cliquez sur le fichier setup.inf, puis dans le menu contextuel qui
s'affiche, cliquez sur la commande Installer.
4) À l'apparition de la boîte de dialogue Confirmer le remplacement du fichier, cliquez sur le bouton
Non.
À partir de là, vous disposerez d'un accès permanent aux permissions NTFS. Vous remarquerez
qu'au premier redémarrage de votre machine, l'onglet Sécurité aura de nouveau disparu.
5) Dans le Registre Windows, ouvrez
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa.
6) Dans le volet de droite, éditez une valeur DWORD nommée forceguest.
7) Saisissez comme données de la valeur le chiffre 0.
- Comprendre les permissions NTFS :
Nous allons simplement prendre un exemple :
1) Dans \Documents and Settings\Nom_Utilisateur\Mes documents, créez un nouveau dossier nommé
Test1.
2) Ouvrez le dossier Test1 et créez à l'intérieur un sous-dossier nommé Test2. Ouvrez Test2 et créez
un nouveau document texte nommé Test.txt.
3) Accédez aux propriétés du dossier Test1.
Si vous cliquez sur l'onglet Sécurité de ce dossier, puis que vous sélectionniez votre nom d'utilisateur,
vous pourrez constater que toutes les cases listées sous la colonne Autoriser sont grisées. Le dossier
hérite du masque de permissions du dossier parent.
4) Cliquez sur le bouton Paramètres avancés, puis sur l'onglet Propriétaire.
Le propriétaire actuel de cet élément est votre nom d'utilisateur. Vous pouvez faire tout ce que vous
voulez de ce dossier puisque vous en avez un contrôle total : lecture, écriture, etc.

- Visualiser les autorisations effectives :


Cliquez sur le bouton Paramètres avancés, puis dans la rubrique Liste des autorisations, sélectionnez
votre nom d'utilisateur. Enfin, cliquez sur le bouton Modifier.

- Désactiver l'héritage :
Accédez à l'onglet Sécurité du dossier Test2, puis cliquez sur le bouton Paramètres avancés.
Décochez simplement la case Hérite de l'objet parent les entrées d'autorisation qui s'appliquent aux
objets enfants.
Vous pouvez copier le jeu des permissions ou supprimer le masque des permissions. Cliquez sur le
bouton Supprimer, puis sur Appliquer et sur Oui. Fermez cette fenêtre en validant par OK.
Le bouton Supprimer vous permet de repartir de zéro
Vous pouvez toujours accéder au dossier Test1, mais plus au dossier Test2. Cependant, il vous est
toujours possible d'accéder aux propriétés du dossier Test2. Il n'y a aucun masque de permissions
NTFS qui est défini.

- Ajouter un utilisateur ou un groupe d'utilisateurs :


1) Dans les propriétés du dossier Test2, cliquez sur le bouton Paramètres avancés puis sur les
boutons Ajouter/Avancé et Rechercher.
2) Sélectionnez dans la colonne Nom(RDN) votre nom d'utilisateur, puis cliquez deux fois sur OK.
3) Cliquez sur Paramètres avancés, puis sur Modifier.
La liste déroulante Appliquer à vous permet de préciser si vous souhaitez appliquer le jeu des
autorisations que vous allez définir au dossier seul ou à l'ensemble des fichiers et des dossiers qu'il
contient (dont notre fichier Test.txt).
4) Cliquez sur Ce dossier et les fichiers, puis cochez les cases Parcours du dossier/exécuter le fichier
et Liste du dossier/lecture de données.
Jean ne pourra pas modifier le dossier test2
Vous constatez que vous pouvez "traverser" le dossier Test2 afin de voir son contenu, mais qu'il ne
vous sera pas possible, par exemple, de le supprimer. Vous ne pourrez pas non plus modifier le fichier
Test.txt, à moins d'enregistrer votre version sous un autre nom.

- Se servir du mécanisme d'héritage :


Il y a donc un moyen de rétablir le dossier Test2 dans son état d'origine : il suffit d'activer dans le jeu
des permissions du dossier l'autorisation Contrôle total.
Une autre solution est également possible :
1) Accédez à l'onglet Sécurité du dossier Test1.
2) Cliquez sur le bouton Paramètres avancés.
3) Cochez la case Remplacer les entrées d'autorisation de tous les objets enfants par les entrées
affichées ici et qui s'appliquent aux objets enfants.
Nous allons donc propager les permissions d'un dossier "parent" vers les dossiers "enfants"
4) À la question "Voulez-vous continuer", répondez par Oui.

- Changer de propriétaire :
Vous pouvez changer de nom de propriétaire de la même façon. Cliquez sur le bouton Paramètres
avancés, puis sur l'onglet Propriétaire. Cochez la case Remplacer le propriétaire des sous-conteneurs
et des objets.
Les autorisations spéciales
Les autorisations fonctionnent selon un schéma de dépendances allant des autorisations génériques
vers les autorisations spéciales :
- Contrôle total : Modification - Lecture et exécution - Affichage du contenu du dossier - Lecture -
Écriture.
- Modification : Lecture et exécution - Affichage du contenu du dossier - Lecture - Écriture.
- Lecture et exécution : Affichage du contenu du dossier - Lecture.
- Affichage du contenu du dossier : Parcours du dossier/exécuter le fichier - Liste du dossier/lecture de
données - Attributs de lecture - Lecture des attributs étendus - Autorisations de lecture.
- Lecture : Liste du dossier/lecture de données - Attributs de lecture - Lecture des attributs étendus -
Autorisations de lecture.
- Écriture : Création de fichier/écriture de données - Création de dossier/ajout de données - Attributs
d'écriture - Écriture d'attributs étendus.
Nous avons encore trois autorisations spéciales qui sont induites par l'autorisation générique Contrôle
total :
* Suppression de sous-dossier et fichier
* Suppression
* Synchronisation
Il reste deux autorisations qui sont appliqués par défaut à tout propriétaire d'un objet :
* Modification des autorisations
* Appropriation
En d'autre termes, quelque soit le masque des permissions défini il vous sera toujours possible de
vous approprier un objet de l'Explorateur ou de modifier le jeu des autorisations. Cela fonctionne donc
comme une sorte de garde-fou.
Certaines autorisations spéciales qui ont un double intitulé s'appliquent en fonction de leur contexte
aux dossiers ou aux fichiers.
Par ailleurs, signalons que le groupe Tout le monde n'inclut pas l'autorisation Ouverture de session
anonyme dans Windows XP à moins d'activer la stratégie correspondante : Configuration
ordinateur/Paramètres Windows/Paramètres de sécurité/Stratégies locales/Options de sécurité :
Accès réseau : les autorisations Tout le monde s'appliquent aux utilisateurs anonymes.
Afin que ce soit plus clair nous allons prendre un exemple :
1) Créez à la racine de votre disque dur un dossier nommé test1
2) Dans test1 créez un sous-dossier nommé test2
3) Dans test1 copiez un fichier exécutable et créez un nouveau document Texte nommé test.txt.
Concernant le fichier exécutable, vous n'avez qu'à copier ce fichier : notepad.exe.
4) Avec le bouton droit de la souris cliquez sur le dossier test1 puis sur Propriétés.
5) Cliquez sur l'onglet Sécurité puis le bouton Paramètres avancés...
6) Décochez la case Hérite de l'objet parent les entrées d'autorisation qui s'appliquent aux objets
enfants...
7) Cliquez sur le bouton Supprimer, OK et Oui.
8) Cliquez sur les boutons Ajouter.../Avancé... et Rechercher.
9) Dans la colonne Nom (RDN) sélectionnez votre nom d'utilisateur puis cliquez deux fois sur OK.
Une autorisation ne se comprend que mise en perspective avec celles qui font partie de sa "famille".

- Affichage du dossier :
-Cochez l'autorisation générique Affichage du dossier puis décochez une à une les stratégies
suivantes :
- Parcours du dossier/exécuter le fichier :
Cette permission possède un lien avec cette stratégie de groupe : Configuration
ordinateur/Paramètres Windows/Paramètres de sécurité/Stratégies locales/Attribution des droits des
utilisateurs : Outrepasser le contrôle de défilement. Par défaut, il est possible d'outrepasser le contrôle
de défilement pour ces groupes d'utilisateurs :
Administrateurs
Opérateurs de sauvegarde
Tout le monde
Utilisateurs
Utilisateurs avec pouvoir
Cela veut donc dire que même si cette autorisation n'est pas cochée, un utilisateur appartenant à un
des groupes listés ci-dessus pourra traverser un dossier alors même qu'il ne possède pas de droits
sur ce dossier.
* Dossiers : définit si un utilisateur peut "traverser" un dossier sans posséder d'autorisations sur cet
objet.
* Fichiers : définit si l'exécution d'un fichier programme est autorisée ou non.
Cliquez sur Démarrer/Exécuter puis saisissez : c:\test1\notepad.exe. Le Bloc-notes Windows s'ouvrira
normalement. Nous pouvons faire le même constat concernant ces commandes : c:\test1\test.txt.
- Liste du dossier/lecture des données :
* Liste du dossier : définit si l'affichage des noms des fichiers est autorisé ou non.
Si cette autorisation est décochée il sera impossible d'accéder au contenu du dossier test1 mais le
dossier test2 sera lui visible.
* Lecture des données : définit si l'affichage du contenu des fichiers est autorisée ou non.
1) Désactivez le mécanisme d'héritage pour le fichier test.txt en supprimant les permissions NTFS
existantes.
2) Ajoutez votre nom d'utilisateur en ne désactivant que les permissions Contrôle total et Liste du
dossier/lecture des données.
3) Ouvrez ce fichier.
Son contenu ne sera pas visible.
- Attributs de lecture :
Cette permission permet de définir si l'affichage des attributs des fichiers est autorisée ou non.
Cette manipulation appliquée au fichier test.txt fera que l'onglet Résumé ne sera pas visible.
- Attributs de lecture étendus :
Cette permission permet de définir si l'affichage des attributs étendus d'un fichier est autorisé ou non.
Apparemment dans ce cas, cette autorisation fait double emploi avec la précédente.
- Autorisations de lecture :
Cette permission permet de définir si la lecture des autorisations d'un fichier ou d'un dossier est
autorisée ou non. Par défaut, puisque vous êtes le propriétaire de l'objet vous avez accès au jeu des
permissions même si celle-ci est décochée.

- Lecture :
C'est vraiment la même chose que précédemment puisque par défaut vous pouvez traverser un
dossier en outrepassant le contrôle de défilement.

- Écriture :
Cochez l'autorisation générique Écriture (mais aussi éventuellement "Lecture" !) puis décochez une à
une les stratégies suivantes :
- Création de fichier/écriture de données :
* Création de fichier : définit si la création des fichiers est autorisée ou non.
* Écriture de données : définit si la modification des fichiers est autorisée ou non.
Si vous essayez de créer un nouveau fichier vous obtiendrez ce message d'erreur : "Accès refusé".
Si vous essayez de modifier le fichier test.txt vous obtiendrez ce message d'erreur : "Impossible de
créer le fichier Nom_Fichier - Vérifiez que le nom et le chemin d'accès sont corrects".
- Création de dossier/ajout de données :
* Création de dossier : définit si la création d'un sous-dossier est autorisée ou non.
Il sera impossible de créer un sous-dossier.
* Ajout de données : définit si l'ajout de données en fin d'un fichier est autorisée ou non.
Dans les faits, cette permission semble strictement identique à "Création de fichier/écriture de
données".
- Attributs d'écriture :
Cette permission permet de définir si la modification des attributs de fichier est autorisée ou non.
Si vous tentez de modifier l'attribut Lecture seule ou Fichier caché vous obtiendrez ce message
d'erreur : "Une erreur s'est produite en appliquant des attributs au fichier..."
- Écriture d'attributs étendus :
Cette permission permet de définir si la modification des attributs étendus d'un fichier ou d'un dossier
est autorisée ou non.
Si vous tentez d'enregistrer des informations dans les zones de texte accessibles en cliquant sur
l'onglet Résumé vous obtiendrez ce message d'erreur : "Les modifications apportées aux propriétés
de résumé n'ont pas pu être enregistrées; l'accès a été refusé".

- Suppression de sous-dossiers et fichiers :


Cette permission permet de définir si la suppression de sous-dossiers ou de fichiers est autorisée ou
non.
Là encore, cette stratégie est directement dépendante l'autorisation suivante : il ne vous sera pas
possible de supprimer un sous-dossier si l'autorisation Suppression ne vous est pas accordée.
- Suppression :
Cette permission permet de définir si la suppression d'un dossier ou d'un fichier est autorisée ou non.
Signalons qu'il n'est pas possible de supprimer un dossier si ce dernier contient un objet sur lequel
vous ne possédez pas l'autorisation de Suppression. Vous obtiendrez alors ce message d'erreur :
"Erreur lors de la suppression du fichier ou du dossier - Impossible de supprimer Nom_Dossier :
Accès refusé. Vérifiez que le disque n'est pas plein ou protégé en écriture et que le fichier n'est pas
utilisé actuellement".
- Modification des autorisations :
Cette permission permet de définir si la modification des autorisations d'un fichier ou d'un dossier est
autorisée ou non.
- Appropriation :
Cette permission permet de définir si l'appropriation d'un dossier ou d'un fichier est autorisée ou non.
- Synchronisation :
Cette permission permet de définir si différentes threads attendant le handle d'un fichier ou dossier et
se synchronisant avec une autre thread peuvent le signaler ou non.

Les chaînes SDDL


Nous allons simplement prendre un exemple nous permettant de réparer un service en modifiant ses
descripteurs de sécurité. Voyons tout d'abord à quoi ressemble une chaîne SDDL :
1) Cliquez sur Démarrer/Exécuter puis saisissez : cmd
2) En Invite de commandes saisissez ceci : sc sdshow bits
Vous allez avoir ce type d'informations concernant le service de transfert intelligent en arrière-plan : D:
(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)
(A;;CCLCSWLOCRRC;;;WPDTLOCRRC;;;PU)
Cette chaîne utilisant le format SDDL décrit l'ACL attaché à ce service. Un autre exemple de chaînes
est visible en éditant les fichiers .inf présents dans %systemroot%\security\templates.
Chaque chaîne SDDL (Security Descriptor Definition Language) de descripteur de sécurité NT est
composé de cinq parties que sont l'en-tête, le DACL, le SACL, le groupe principal et le propriétaire.
Chacune de ces parties est identifiée par un préfixe noté entre parenthèses.
La syntaxe générale est la suivante :
O:Propriétaire_sidG:groupe_sidD:dacl_Drapeau(Chaîne_ace1)(Chaîne_ace2)...
(Chaîne_acen)S:sacl_Drapeau(Chaîne_ace1)(Chaîne_ace2)...(Chaîne_acen)
Le contenu du groupe principal et du propriétaire est simplement leur SID respectif.
Il y a 6 champs séparés par un point-virgule dans chaque ACE. Les champs sont les suivants :
Type d'ACE : (Autoriser/Refuser/Auditer)
Drapeaux (Paramètres d'héritage et d'audit)
Permissions (liste des permissions)
Type d'objet (GUID)
Type d'objet hérité (GUID)
Groupes d'utilisateurs ayant accès à la ressource (SID)
Il vous est possible de réparer un problème de démarrage de service en suivant cette procédure :
1) À partir d'un ordinateur possédant le même service d'exploitation lancez cette commande :
sc sdshow Nom_Service
2) Faites un copier-coller de la chaîne SDDL qui est affichée.
3) À partir de l'ordinateur défaillant saisissez cette commande :
sc sdset Nom_Service "Chaîne SDDL"
Par exemple et si le service Aide et support refuse de se lancer :
net stop helpsvc
sc sdset helpsvc "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)
(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;WPDTLOCRRC;;;PU)"
net start helpsvc
Cela vous permettra de régler des problèmes de permissions qui vous empêchent de démarrer tel ou
tel service.
Des explications plus complètes sont disponibles à cette adresse :
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/kmarch/hh/kmarch/DevObjts_300e4be0-3585-4789-8363-650b6413200e.xml.asp.

Récupérer les données d'un disque dur


auquel vous n'avez plus accès à cause
d'un problème de permissions NTFS
Sous Windows XP Édition Familiale, redémarrez en mode sans échec. Dans ce cas, vous aurez alors
accès aux permissions NTFS. Il y a ensuite deux procédures possibles :
1) Avec le bouton droit de la souris cliquez sur le dossier puis sur Partage et sécurité et l'onglet
Sécurité.
2) Cliquez sur le bouton Paramètres avancés puis l'onglet Propriétaire.
3) Sélectionnez votre nom d'utilisateur, cochez la case Remplacer le propriétaire des sous-conteneurs
et des objets puis cliquez sur Appliquer et OK.
Éventuellement suivez cette autre procédure :
1) Avec le bouton droit de la souris, cliquez sur la lettre de lecteur du disque ou de la partition à
récupérer puis cliquez sur Propriétés et l'onglet Sécurité.
2) Cliquez sur les boutons Ajouter.../Avancé.../Rechercher.
3) Dans la rubrique Nom(RDN) sélectionnez votre nom d'utilisateur puis cliquez deux fois sur OK.
4) Dans la rubrique Noms d'utilisateur ou de groupe :, cliquez sur votre nom d'utilisateur puis cochez
la case Contrôle total sous la colonne Autoriser.
5) Cliquez sur Appliquer puis sur le bouton Paramètres avancés.
6) Cochez la case Remplacer les entrées d'autorisations de tous les objets enfants par les entrées
affichées ici et qui s'appliquent aux objets enfants.
Dans les deux cas, nous changeons le jeu des permissions NTFS mais il faut également que le
masque des autorisations soient répercutée à l'ensemble des répertoires et des fichiers présents sur
le lecteur à "récupérer".

Gestion des permissions NTFS en Invite de


commandes
- Manipuler les descripteurs de sécurité :
Une nouvelle version de "Xcalcs" est téléchargeable à partir de cette adresse :
http://download.microsoft.com/download/f/7/8/f786aaf3-a37b-45ab-b0a2-
8c8c18bbf483/XCacls_Installer.exe. Double-cliquez sur le fichier exécutable et choisissez un
répertoire où le décompresser. De préférence, optez pour un répertoire défini par la variable
d'environnement "Path". C'est un fichier portant l'extension .vbs. Ce script est compatible avec
Windows 2000 et ultérieur. L'aide s'affiche en saisissant :
cscript xcacls.vbs /?
Oui, il est nécessaire d'utiliser "Windows Script Host Version 5.6" pour pouvoir lancer ce fichier à partir
de l'Invite de commandes.
Définition : Avant la création de Windows Script Host, le seul langage de commandes intégré dans
les systèmes d'exploitation Windows était le Ms-Dos. Avec "WHS" il est maintenant possible d'utiliser
les fonctionnalités étendues de langages de programmation tel que le VBScript ou le JScript.
La syntaxe offre beaucoup plus de possibilités :
Xcacls Nom_Fichier [/E] [/G Utilisateur:Permission;Filtre] [...] [/R Utilisateur [...]] [/F] [/S] [/T]
[/P Utilisateur:Permission;Spec [...]] [/D Utilisateur:Permission;Filtre] [...]
[/O Utilisateur] [/I ENABLE/COPY/REMOVE] [/N
[/L Nom_Fichier] [/Q] [/DEBUG]
Nom_Fichier est obligatoire. Employé seul, la liste ACL sera affichée.
/F : propage le masque des permission aux fichiers.
/S : propage le masque des permissions aux sous-répertoires mais sans les "traverser". Employé avec
le commutateur /T la commande se propagera l'ensemble des objets "enfants" (fichiers et sous-
répertoires).
/T : ce commutateur ne s'emploi que si "Nom_Fichier" est un répertoire. Dans ce cas, les sous-
répertoires sont "traversés".
/E : édite le jeu des permissions sans remplacer celles des autres utilisateurs.
/G Utilisateur:Permission:Filtre :
Le tableau suivant liste les valeurs possibles pour les permissions :
Valeur Permission
F Contrôle total
M Modification
X Lecture et exécution
R Lecture
W Écriture
L Afficher le contenu du dossier
E Synchroniser
D Appropriation
C Autorisation de lecture
A Suppression
9 Attributs de lecture
8 Attributs d'écriture
7 Suppression de sous-dossier et de fichier
6 Parcours du dossier/exécuter le fichier
5 Écriture d'attributs étendus
4 Lecture d'attributs étendus
3 Création de dossier/ajout de données
2 Création de fichier/ajout de données
1 Liste du dossier/lecture des données
Listes de commutateurs autorisés avec "Xcalcs"
/R Utilisateur : révoque les droits des utilisateurs spécifiés.
/P Utilisateur:GUI : définit le masque des permissions sur le jeu par défaut.
/P Utilisateur:Permission;Filtre : remplace les droits des utilisateurs spécifiés.
/O Utilisateur : remplace le propriétaire.
/I commutateur : permet de spécifier si l'héritage est conservé ou non. Les commutateurs suivants
sont autorisés :
ENABLE : héritera de l'objet parent des entrées d'autorisation qui s'appliquent aux objets enfants.
COPY : copiera les entrées d'autorisation en désactivant l'héritage.
REMOVE : supprimera l'héritage sans copier les entrées d'autorisation.
/Filtre commutateur : si l'objet est un répertoire les commutateurs autorisés sont les suivants :
A : ce répertoire seulement.
B : ce répertoire, les sous-répertoires et les fichiers (c'est l'option par défaut).
C : ce répertoire et ses sous-répertoires.
D : ce répertoire et les fichiers.
E : les sous-répertoires et les fichiers seulement.
F : les sous-répertoires seulement.
G : les fichiers seulement.
/L Nom_Fichier : permet de spécifier un fichier de journalisation.
/Q : effectue la commande en mode silencieux.
/DEBUG : affiche les informations détaillées.
/SERVEUR Nom_Serveur : permet de spécifier un nom de serveur.
/USER Utilisateur : spécifie un nom d'utilisateur permettant de s'identifier lors des connexions
distantes.
/PASS Mot_de_Passe : permet de spécifier le mot de passe de l'utilisateur lors d'une connexion
distante.
Imaginons un répertoire nommé Test placé à la racine de votre lecteur. Si vous souhaitez vous rendre
propriétaire de ce répertoire, saisissez :
cscript xcacls.vbs c:\test\ /o "Nom_Utilisateur"
Si vous souhaitez accorder au même utilisateur un contrôle total, saisissez :
cscript xcacls.vbs c:\test /g "Nom_Utilisateur":f
L'utilisateur spécifié est désormais le propriétaire du répertoire Test.
Si vous souhaitez que le répertoire Test hérite du masque des permissions du lecteur parent saisissez
:
cscript xcacls.vbs c:\test /i enable
Si vous souhaitez désactiver le mécanisme d'héritage, réinitialiser le jeu des permissions NTFS et
repartir à zéro saisissez :
cscript xcacls.vbs c:\test /i remove
La liste des descripteurs de sécurité sera vide.
Si vous souhaitez que l'utilisateur Jean ne possède qu'un droit de lecture et de parcourir le dossier
saisissez :
cscript xcacls.vbs c:\test /g "Jean":F6
Si, de plus, vous souhaitez accorder un droit de contrôle total à l'utilisateur Jean sans modifier les
autorisations de l'utilisateur actuel, saisissez :
cscript xcacls.vbs c:\test /g "Jean":F /e
Si vous voulez refaire la même opération mais en supprimant tous les droits de l'utilisateur Jean (il ne
fera plus partie de la liste des permission de ce répertoire) saisissez :
cscript xcacls.vbs c:\test /e "Jean":F

- Se rendre propriétaire d'un fichier ou d'un répertoire :


"Takeown" est un outil extrêmement pratique pour assigner à toute vitesse le contrôle total du groupe
"Tout le monde" sur un fichier ou un répertoire auquel vous ne pouvez plus accéder. Il fait partie du
"kit de ressources Windows 2000". Saisissez simplement le nom de la commande suivi du nom du
répertoire récalcitrant.

- SucInAcl : Afficher et modifier les "ACL" ou les "ACE" :


La nouvelle version de "SubInAcl" se télécharge à partir de cette adresse :
www.microsoft.com/downloads/details.aspx?FamilyID=e8ba3e56-d8fe-4a91-93cf-
ed6985e3927b&displaylang=en. Une fois le fichier Subinacl.msi téléchargé, double-cliquez dessus
afin de procéder à l'installation proprement dite. La syntaxe de cet outil s'obtient en saisissant :
subinacl /help ou subnicacl /help /full. Notre propos n'est pas d'expliquer tous les champs d'application
de cet utilitaire mais de simplement vous donner quelques pistes. Cet utilitaire permet aux
administrateurs d'afficher les informations de sécurité sur un fichier, un répertoire, une clé du Registre
ou un service et de transférer ces informations d'un utilisateur à l'autre, d'un groupe d'utilisateur à un
autre groupe ou d'un domaine vers un autre domaine. Il est également possible de modifier le
propriétaire, de changer le SID d'un objet et de migrer les descripteurs de sécurité de n'importe quel
objet vers un autre objet.
Les manipulations possibles sont les suivantes :
* Afficher et modifier le propriétaire de l'objet.
* Afficher et modifier le groupe primaire attaché à l'objet.
* Effectuer un audit des listes ACL et ACE.
Concernant les fichiers et les dossiers, les permissions suivantes sont autorisées :
Permission effective - Description
F : Contrôle total
C : Modification
R : Lecture
P : Modification des autorisations
O : Appropriation
X : Exécution
E : Lecture et exécution
W : Écriture
D : Suppression
Il existe d'autres descripteurs pour les objets suivants : imprimantes, entrées du Registre, services,
partages réseau, processus, etc. Les commutateurs /grant et /deny vous permettent d'autoriser ou de
refuser la permission qui est définie.
La syntaxe générale est la suivante :
Subinacl [/Option] /objet_type objet_nom [[/Action[=Paramètre]..]
Afin d'y voir plus clair prenons quelques exemples :
Afin d'afficher les permissions attachés à un fichier nommé Texte.txt saisissez :
subinacl /verbose=1 /file c:\test\texte.txt \display
Vous pouvez vous servir du mot-clé /verbose=2 afin d'afficher les permissions de manière détaillée.
Vous affichez le nombre d’ACE d’audit (les "aaces") et les ACE de permission (les "paces").
Afin de visualiser les permissions d'une clé du Registre saisissez :
subinacl /verbose=2 /keyreg HKEY_LOCAL_MACHINE\SOFTWARE
La même manipulation est possible sur le service "Messenger" ou un processus nommé
"Iexplorer.exe" :
subinacl /service Messenger /display
subinacl /process iexplore.* /display
Afin d'ajouter un utilisateur nommé Jean et lui accorder une permission de lecture sur le fichier,
saisissez :
subinacl /file texte.txt /grant=jean=r
Il vous est possible de lancer la commande en mode "test" :
subinacl /testmode /file texte.txt /grant=jean=r
Aucune modification ne sera effectuée sur le fichier concerné.
Afin de refuser à l'utilisateur Jean la permission d'écriture sur le fichier saisissez :
subinacl /file texte.txt /deny=jean=w
Si vous souhaitez que cette commande s'applique à toute l'arborescence du répertoire visé,
saisissez :
subinacl /subdirectories * /deny=jean=w
Il vous est possible de spécifier plusieurs permissions en les accolant :
subinacl /subdirectories * /deny=jean=rw
Afin de supprimer tout le jeu de permissions sur le fichier, saisissez :
subinacl /file texte.txt /perm
Si vous souhaitez remplacer le propriétaire de tous les fichiers, saisissez :
subinacl /file * /replace=Anderruthy=Jean
Nous avons substitué pour chaque fichiers trouvés dans le répertoire Test au propriétaire nommé
"Anderruthy" un nouveau propriétaire nommé "Jean". En accédant à l'onglet Sécurité de ces fichiers,
vous pourrez constater que le précédent propriétaire n'apparaît plus et que l'utilisateur Jean possède
maintenant un contrôle total sur ces fichiers. Imaginons maintenant qu'un utilisateur a laissé une
multitude de fichiers sur un ordinateur et que vous souhaitiez vous réapproprier l'ensemble des
documents vous saisissez :
subinacl /file * /replace=Anderruthy=jean
Si maintenant vous souhaitez simplement supprimer toutes les permissions faisant référence à
l'utilisateur Jean, saisissez :
subinacl /subdirectories * /revoke=jean
Si vous souhaitez remplacer le propriétaire courant par le groupe "Tout le monde", saisissez :
subinacl /file * /suppresssid=jean
Afin d'effectuer une sauvegarde d'un jeu de permissions dans un fichier nommé Sauvegarde.txt,
saisissez :
subinacl /noverbose /output=sauvegarde.txt /file texte.txt
Afin de restaurer le jeu des permissions sur ce fichier, saisissez simplement ceci :
subinacl /playfile sauvegarde.txt

- AccessChk : Afficher les droits des utilisateurs à partir de l’Invite de commandes :


AccessChk se télécharge à partir de cette page :
http://www.sysinternals.com/Utilities/AccessChk.html.
C’est un simple exécutable qui se lance à partir de l’Invite de commandes. La syntaxe est la
suivante :
accesschk [-s][-i|-e][-r][-w][-n][-v][[-k][-c]|[-d]] <Nom_Utilisateur> <fichier, répertoire, clé
du Registre, service>
-q : n’affiche pas le texte d’introduction placé avant chaque sortie texte.
-c : permet de spécifier un service Windows (vous pouvez utiliser le caractère générique *
afin d’analyser tous les services).
-k : permet de spécifier une clé du registre
-d : n’analyse que les dossiers.
-n : n’affiche que les objets sur lesquels l’utilisateur spécifié ne possède pas d’accès.
-r : ne montre que les objets sur lesquels l’utilisateur spécifié possède un accès en Lecture.
-w : ne montre que les objets sur lesquels l’utilisateur spécifié possède des droits en Ecriture.
-s : opère en mode récursif (c’est parfois un peu long…)
AccessChk utilise ces deux abréviations :
R : Lecture
W : Ecriture
Rien si l’utilisateur ou le groupe spécifié ne possède aucun droit.
Vous pouvez cumuler les commutateurs…
Afin d’afficher les droits que possèdent le groupe des administrateurs sur le répertoire
System32 utilisez la commande suivante :
accesschk administrateurs c:\windows\system32
Afin de savoir quels sont les services sur lesquels le groupe des administrateurs possède un
accès en Lecture et en Ecriture :
accesschk administrateurs -cw *
Afin de savoir quelles sont les clés du Registre dans HKLM\SOFTWARE le groupe des
utilisateurs ne possèdent aucun accès :
accesschk -kns utilisateurs hklm\software
Afin de visualiser le niveau de sécurité de cette même clé :
accesschk -k hklm\software
Note : Si vous spécifiez un nom d’utilisateur ou de groupe comportant un espace placez-le
entre guillemets.
Note : Certains commutateurs propres à Windows Vista seront exposés ultérieurement.