Les permissions NTFS

Les permissions NTFS

Le système de fichiers NTFS intègre une notion évoluée de sécurité et de contrôle d’accès aux objets (par objets on entend fichiers et répertoires).  Pour l’utiliser, il faut d’abord ouvrir un explorateur Windows, puis aller dans Outils->Options des dossiers->Affichage.  La toute dernière option (Utiliser le partage de fichiers simple) doit être désactivée (après tout, nous sommes des professionnels).  Après coup, il suffit d’aller dans les propriétés d’un objet dont on veut contrôler l’accès et d’atteindre l’onglet Sécurité.

De là, on pourra ajouter un groupe ou un usager de qui on veut contrôler l’accès.  Pour chaque usager ou groupe dans la liste, on choisira de permettre ou d’interdire différentes opérations.

Voyons voir ce que signifient les différentes permissions:

  1. Lecture:  s’applique uniquement à un fichier.  Permet de lire le contenu du fichier, lire ses attributs et ses permissions.
  2. Affichage du contenu du dossier:  s’applique uniquement à un dossier.  Donne les mêmes accès que « Lecture » mais donne en plus le droit d’exécuter tous les fichiers qui se trouvent dans le dossier
  3. Lecture et exécution:  équivaut à « Affichage du contenu du dossier », mais peut s’appliquer à un fichier comme à un dossier.  Dans le cas d’un fichier, il permet donc de l’exécuter.  Dans le cas d’un dossier, la seule différence entre  » Lecture et exécution  » et  » Affichage du contenu du dossier  » est au niveau de l’héritage:  la première est héritée à tous les objets enfants du dossier et la deuxième n’est héritée qu’aux sous-répertoires (nuance très subtile s’il en est une – nous verrons l’héritage des permissions très bientôt).
  4. Écriture:  permet de créer des fichiers, de modifier le contenu des fichiers, de créer des dossiers et de modifier les attributs des fichiers et des dossiers.  Attention:  la permission « Écriture » ne permet pas à quelqu’un de modifier les permissions d’un objet!  Elle ne permet pas non plus d’effacer ni d’exécuter!
  5. Modification:  équivaut à la somme de « Lecture » et « Écriture », avec en plus le droit d’exécuter et d’effacer le fichier.
  6. Contrôle total:  donne toutes les permissions possibles.  Équivaut donc à « Modification » avec en plus le droit de prendre possession du fichier et de changer ses permissions (c’est la seule permission qui permet ce genre d’opérations).

Quelques notes importantes en passant:

  1. L’administrateur est limité comme tout le monde par les permissions (en ce sens qu’il ne pourra pas par exemple entrer dans un répertoire où il n’a pas accès, ni effacer un fichier pour lequel il n’a pas le droit de modification).  Toutefois, il a toujours le droit de modifier les permissions de tout objet, donc il pourra s’il le désire contourner toutes les limitations.
  2. Si quelqu’un a le contrôle total d’un dossier, il pourra effacer tous les objets de ce dossier, peu importe les accès individuels qu’il a sur ces objets.
  3. Un usager reçoit la somme de toutes les permissions qui s’appliquent à lui.  Par exemple, si on donne des permissions à un usager directement, puis qu’on définit d’autres permissions à un groupe dont l’usager fait partie, cet usager recevra donc les deux ensembles de permissions.  Dans un cas où un de ces ensembles lui permet quelque chose et que l’autre le lui interdit, c’est toujours l’interdiction qui aura préséance.

L’héritage des permissions

De façon à faciliter la mise en place des permissions, celles-ci sont héritées d’un dossier à ses enfants.  Chaque objet reçoit par défaut les permissions de son dossier parent, puis ses propres permissions.  Le total des deux sera ensuite passé à ses enfants.

Lorsqu’un objet reçoit des permissions de son parent, ces permissions apparaissent chez l’objet et sont grisées.  Elles ne peuvent pas être modifiées directement.  Si on veut tout de même les changer, on a trois choix:

  1. Les modifier chez le parent.  Évidemment, ça règle notre problème concernant les permissions de l’enfant, mais ça peut fort bien en causer d’autres au niveau du parent!
  2. Les contredire chez l’enfant.  En effet, si un objet reçoit, par exemple, une permission de modification pour un usager quelconque, on ne peut pas enlever cette permission, mais on peut cocher la case d’interdiction de modification juste à côté!  L’inverse est aussi possible.  Lorsqu’une permission locale contredit une permission héritée, la permission locale a toujours préséance.
  3. S’il est impossible d’arriver à nos fins en contredisant les permissions héritées, on peut carrément désactiver l’héritage en faisant cliquant sur le bouton « Avancé » et en enlevant la coche « Hériter les permissions du parent » (c’est souvent la solution la plus simple).

Les permissions avancées

 Justement, en cliquant sur le bouton « Paramètres avancés », on découvre soudainement un autre ensemble de permissions…  On voit une liste d’usagers et de groupes et pour chacun d’eux, une liste de permissions différentes de celles de l’onglet Sécurité…  Comment expliquer cela?

C’est très simple en fait:  les permissions « de base », celles que l’on utilise normalement, ne sont pas unitaires, c’est-à-dire qu’elles sont en fait composées de permissions plus granulaires encore.  Par exemple, la simple permission « Lecture » est en réalité composée des cinq permissions avancées suivantes:  « Liste du dossier/Lecture des données », « Autorisations de lecture », « Lecture des attributs étendus », « Attributs de lecture » et « Synchroniser ».

Si on a besoin d’être très spécifique et que les permissions de base ne le sont pas assez pour nous, on peut aller dans les permissions avancées et cocher ce qui nous plait – ce qui ne correspondra pas nécessairement à une des permissions de base.  Dans ce cas, on verra « Autorisations spéciales » dans l’onglet Sécurité.

Voici un tableau montrant les permissions avancées contenues dans chaque permission de base:

Permissions
avancées

Contrôle total

Modification

Lecture et Exécution

Affichage du contenu du dossier

Lecture

Écriture

Traverser dossier/Exécuter fichier

x

x

x

x

   
Lister dossier/Lire les données

x

x

x

x

x

 
Lire les attributs

x

x

x

x

x

 
Lire les attributs étendus

x

x

x

x

x

 
Créer fichiers/Écrire données

x

x

     

x

Créer dossiers/Ajouter données

x

x

     

x

Écrire les attributs

x

x

     

x

Écrire les attributs étendus

x

x

     

x

Effacer sous-répertoires et fichiers

x

         
Effacer

x

x

       
Lire les permissions

x

x

x

x

x

x

Changer les permissions

x

         
S’approprier l’objet

x

         
Synchroniser

x

x

x

x

x

x

Il est toutefois bien rare qu’on ait besoin d’aller dans un niveau de détail aussi grand.

Le partage de répertoires

Lorsque notre ordinateur est relié à un réseau local, qu’on fonctionne en groupe de travail (workgroup) ou en domaine, il est fort utile de pouvoir partager des ressources.  Il n’est pas possible de partager un simple fichier, mais on peut toutefois partager un répertoire (et donc son contenu).

Pour partager un dossier, il suffit de faire afficher ses propriétés et d’aller dans l’onglet « partage ».  De là on pourra simplement choisir de partager le dossier, ce qui implique qu’on lui donnera un nom de partage.  C’est le nom de partage qui sera utilisé pour atteindre le dossier – les utilisateurs distants ne savent pas (et n’ont pas besoin de savoir) où se trouve le dossier, simplement d’en connaître le nom de partage.

Il est possible de définir des autorisations d’accès à un partage.  Cette fenêtre ressemble beaucoup aux permissions de NTFS, mais en plus simple.  En fait, elles viennent s’additionner aux permissions NTFS, ce qui complique les choses inutilement.  Ces options sont là simplement pour respecter le fonctionnement des anciennes versions de Windows.  Il est recommandé de ne pas les utiliser et de se fier à NTFS.

Pour accéder à un répertoire partagé par quelqu’un d’autre, on doit nécessairement connecter un lecteur réseau.  Le lecteur réseau sera vu par Windows (et possiblement par l’utilisateur!) comme un disque dur ordinaire.  Il pointe en réalité vers un répertoire partagé sur un autre ordinateur.

Pour connecter un lecteur réseau, il suffit d’aller dans l’explorateur Windows et de cliquer sur Outils -> Connecter un lecteur réseau.  On choisira alors la lettre que l’on veut donner à notre futur lecteur, puis sa destination.  La destination est donnée en notation UNC (Unified Naming Convention), c’est à dire \\serveur\partage.  On peut ajouter \répertoire à la fin si on veut atteindre directement un sous-répertoire du dossier partagé.

Une fois le lecteur connecté, on y accède comme on le ferait pour n’importe quel disque dur.