Un didacticiel concernant
les permissions NTFS et la syntaxe SDDL.
Dernière mise à jour : 12/08/2006
Pages complémentaires : les permissions NTFS et le Registre.
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.
|
|