Introduction

Pour ceux d'entre vous qui développent ou déploient leurs sites Joomla! depuis un environnement Windows, il est parfois difficile d'obtenir des informations pertinentes concernant les droits d'accès. Malheureusement, il est un fait que la plupart des hébergements Web sont proposés sous Unix et que Unix est plutôt bien documenté dans ce domaine. Nous espérons que les informations suivantes permettront de dissiper une partie de la confusion et d'apporter quelques conseils.

Vue d'ensemble des serveurs Web Windows

Tout d'abord, examinons les différences entre les serveurs. En général, la plupart des utilisateurs de Windows semblent utiliser soit Apache (Win32), soit Microsoft IIS. Ces deux serveurs Web fonctionnent de manière très différente et utilisent des modèles de diffusion légèrement différents. Apache (Win32) s'exécute généralement sur l'ordinateur hôte en tant qu'utilisateur sous lequel il a été installé, alors que IIS s'installe sous un utilisateur spécifique mais s'exécutera sous un nouvel utilisateur créé IUSR_.

Droits par défaut

Par défaut, Unix a tendance à n'accorder un accès complet qu'à l'utilisateur propriétaire des fichiers et répertoires, à l'inverse de cette approche, Windows attribuera également par défaut au Groupe Everyone, des droits complets. La première chose que tout bon Administrateur Windows fera est de retirer les droits du groupe Everyone, afin d'améliorer la sécurité. Pour des tests locaux sur PC, cela n'est probablement pas nécessaire, mais cela explique pourquoi, si Everyone n'est pas retiré et que vous exécutez une forme de script de vérification des droits ou la vérification de pré-installation de Joomla!, dans l'ensemble vous obtiendrez des droits complets de Lecture, Écriture et Exécution, car vous acquérez les droits du Groupe Everyone.

Microsoft Internet Information Server (IIS)

IIS se décline en deux versions principales, PWS (Personal WebServer), et IIS (Internet Information Server). Ce sont essentiellement la même application. PWS est simplement une version allégée de IIS conçue pour les environnements de bureau, alors que IIS est conçu pour les environnements serveur. PWS vous limite à un seul site Web principal, de sorte que vos installations d'applications se feront généralement dans des sous-répertoires du site Web principal. IIS, quant à lui, offre la fonctionnalité permettant d'exécuter des Hôtes Virtuels depuis ces répertoires, offrant ainsi une capacité multi-sites.

En raison des différentes limitations fonctionnelles, PWS ne dispose pas de l'Assistant Droits car il est jugé non nécessaire. Un seul utilisateur utilisera le serveur PWS. Dans IIS, de nombreux utilisateurs utiliseront le serveur, c'est pourquoi des attributions de droits différentes sont nécessaires.

Une fois le compte Everyone retiré, Windows IIS se retrouve avec le compte IUSR_ disposant des droits de plus haut niveau sur les répertoires du serveur Web. Une vérification des droits devrait désormais donner des résultats différents. Seul le compte IUSR_ dispose de droits complets et les autres utilisateurs devraient obtenir soit un accès en Lecture Seule, soit aucun droit. Les droits sont déterminés en fonction des droits attribués manuellement aux autres utilisateurs sur les répertoires IIS.

Attribution des droits

Attribuer des droits sous Windows est relativement simple, mais peut parfois prêter à confusion. Faites un clic droit sur le dossier ou le fichier concerné. En sélectionnant Propriétés ou Partage et Sécurité, vous accéderez au panneau de Gestion de la Sécurité Windows. En sélectionnant (un clic) un nom d'utilisateur répertorié, les droits de cet utilisateur s'afficheront dans la moitié inférieure du panneau. Certains droits peuvent apparaître grisés.Ils sont indisponibles, soit parce que l'utilisateur actuel (celui sous lequel vous êtes connecté) n'a pas des Droits suffisants pour les modifier, soit parce qu'ils sont hérités du répertoire parent et ont été configurés pour utiliser les Droits de ce répertoire de niveau supérieur (c'est généralement le mécanisme par défaut).

Comme vous pouvez le voir, Windows utilise le schéma de Droits/Permissions suivant :

# Droits Autorisations
1 Contrôle total Autorise : 1, 2, 3, 4, 5, 6, 7
2 Modification Autorise : 2, 3, 4, 5, 6
3 Lecture & Exécution Autorise : 3, 4
4 Affichage du contenu du Dossier Autorise : 4 (mais ne peut pas exécuter de programmes)
5 Lecture Autorise : 5 (Implique : 4)
6 Écriture Autorise : 6 (Implique : 4)
7 Droits spéciaux Autorise : Combinaisons

Propriétés des droits de fichiers Windows

Les droits de fichiers Windows peuvent être considérés comme ayant des propriétés similaires à celles des droits de fichiers (Modes) UNIX ou Linux, ils sont simplement représentés différemment. Par exemple, si vous êtes principalement un utilisateur Unix/Linux, vous avez probablement l'habitude de voir les Droits représentés sous la forme 644/666 755/777, plutôt que décrits dans les termes ci-dessus. Ainsi, lorsqu'on vous indique d'utiliser 644, cela équivaut à :

  • Le propriétaire de ce fichier peut le lire et y écrire.
  • Le groupe du propriétaire peut lire le fichier.
  • Tout le monde peut lire le fichier.

Remarque : les Droits Windows et Unix (Listes de Contrôle d'Accès) ne sont pas exactement équivalents, car Windows n'utilise pas le mécanisme des Groupes de la même manière. Cependant, pour cette discussion et en ce qui concerne l'environnement d'hébergement Web, ils peuvent globalement être considérés comme équivalents. Cela dit, sous Windows les Groupes ne sont pas utilisés et Everyone aurait dû être supprimé. C'est là que Windows et Unix ne correspondent pas tout à fait, mais ce qui peut être fait, c'est de faire correspondre ou de mettre en relation des significations équivalentes.

Ce document n'a pas vraiment pour but de vous fournir un guide spécifique des droits Windows ou NTFS, mais plutôt une compréhension de la manière dont les Droits couramment cités au format numérique UNIX/Linux correspondent sur une machine dotée d'un système de fichiers NTFS. Les fichiers placés dans le Dossier racine de www.domain.com.au, ou quel que soit le répertoire vers lequel pointe votre site (www.domain.com.au ou localhost) sur votre disque dur, devraient appartenir à votre compte d'utilisateur, mais seulement si cet utilisateur n'est pas considéré comme un utilisateur privilégié tel que Administrator sous Windows ou root sous UNIX/Linux. Ces comptes autorisent un accès bien trop large et ne devraient jamais être utilisés pour un usage quotidien.

Meilleures pratiques

Les pratiques de sécurité couramment utilisées suggèrent que tous les Fichiers devraient avoir les Droits suivants.

  • Propriétaire : Lecture & Écriture
  • Groupe : Lecture seule
  • Autres : Lecture seule

Tous les répertoires/dossiers devraient avoir les Droits suivants :

  • Propriétaire : Lecture, Écriture & Exécution
  • Groupe : Lecture & Exécution
  • Autres : Lecture & Exécution

On peut soutenir que ce n'est pas nécessairement une sécurité optimale, mais un équilibre doit être trouvé entre sécurité, fonctionnalité et maintenabilité. Windows, contrairement à Unix, ne maintient pas une ACL unique pour Exécution, mais fournit simplement Lecture & Exécution combinées, ce qui n'implique pas Écriture. L'ACL Lecture & Exécution implique cependant Affichage du contenu du Dossier. Par conséquent, si vous n'avez que les droits Lecture & Écriture sur un répertoire mais pas Exécution, vous ne pourrez pas voir le contenu du répertoire et vous pourriez également rencontrer des problèmes lorsque vous essayez d'exécuter le fichier via un navigateur web. Une petite compréhension des autorisations UNIX/Linux est nécessaire pour les faire pleinement correspondre aux autorisations Windows. Le tableau suivant devrait vous aider ;

Mode Unix ACL Windows Commentaires
7 Modification Lecture, Écriture & Exécution, vous devriez être le propriétaire de ce fichier
6 Lecture & Écriture
5 Lecture & Exécution utilisé pour la plupart des applications
4 Lecture seule la sécurité par l'obscurité n'est pas une bonne pratique
3 Écriture & Exécution non disponible via Windows, sauf si les Droits « Spéciaux » sont utilisés, peu couramment utilisé
2 Écriture seule non disponible via Windows, sauf si les Droits « Spéciaux » sont utilisés, peu couramment utilisé
1 Exécution seule non disponible via Windows, sauf si les Droits « Spéciaux » sont utilisés, peu couramment utilisé

Pour comparer aux Modes Unix, lorsque vous voyez quelque chose comme 644, vous le décomposeriez en trois éléments :

6 : 4 : 4

Le premier chiffre représente les droits du Propriétaire*, le second représente les droits du Groupe et le troisième, les droits des Autres. L'équivalent Windows serait ;

* Propriétaire (6) : Lecture & Écriture

  • Groupe (4) : Lecture seule
  • Autres (4) : Lecture seule

Espérons que cet exemple vous donne un aperçu de la façon de faire correspondre les Modes/Autorisations Unix aux Droits/ACL Windows. Ce document n'inclut pas de sujets plus complexes tels que les droits Effectifs, Hérités, ou Spéciaux. Malgré la simplicité d'utilisation de Windows, les mécanismes de Droits et d'ACL de Microsoft sont en fait raisonnablement complexes et très étendus, mais ceci pourrait vous donner une référence rapide pour tenter de dissiper une partie de la confusion entourant les traductions des autorisations Unix et Windows.