Introduction

Pour ceux d'entre vous qui développent ou mettent en ligne leurs sites Joomla! à partir d'un environnement Windows, il est parfois difficile d'obtenir des informations pertinentes concernant les droits. Malheureusement, il est un fait que la plupart des hébergements web sont proposés sous Unix et qu'Unix est plutôt bien documenté dans cet environnement. Espérons que les informations suivantes permettront de dissiper une partie de la confusion et d'apporter également un peu de conseils.

Aperçu des serveurs Web Windows

Tout d'abord, examinons les différences entre les serveurs. En général, la plupart des utilisateurs 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 livraison 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é, tandis qu'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 aux fichiers et répertoires qu'à l'utilisateur propriétaire. En revanche, Windows attribue par défaut également des droits complets au groupe Everyone. La première chose que tout bon Administrateur Windows fera est de retirer les droits du groupe Everyone pour 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 le contrôle de pré-installation de Joomla!, vous obtiendrez des droits complets en Lecture, Écriture et Exécution. Vous récupérez les droits du groupe Everyone.

Microsoft Internet Information Server (IIS)

IIS se décline principalement en deux versions, PWS (Personal WebServer) et IIS (Internet Information Server). Essentiellement, il s'agit de la même application. PWS n'est qu'une version allégée d'IIS conçue pour les environnements de bureau, tandis qu'IIS est conçu pour les environnements de 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 principal. IIS, en revanche, offre la fonctionnalité des hôtes virtuels à partir de ces répertoires, permettant une capacité multi-sites.

En raison des différentes limitations fonctionnelles, PWS ne dispose pas de l'Assistant Droits car celui-ci est jugé inutile. Un seul utilisateur utilisera le serveur PWS. Dans IIS, de nombreux utilisateurs utiliseront le serveur, d'où la nécessité d'attributions de droits différentes.

Une fois le compte Everyone retiré, Windows IIS ne laisse plus que le compte IUSR_* avec des droits de 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 ne devraient obtenir que des droits en Lecture seule ou aucun droit. Les droits sont déterminés en fonction des droits manuellement attribués aux autres utilisateurs sur les répertoires IIS.

Attribution des droits

L'attribution 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édez au panneau de gestion de la sécurité Windows. En sélectionnant (cliquer une fois) un nom d'utilisateur répertorié, les droits de cet utilisateur s'affichent dans la partie inférieure du panneau. Certains droits peuvent être grisés. Ils sont indisponibles, soit parce que l'utilisateur actuel (celui avec lequel vous êtes connecté) ne dispose pas de 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. (Il s'agit généralement du mécanisme par défaut.)

Comme vous pouvez le constater, Windows utilise le schéma de Droits suivant :

# Contrôle Autorise #
1. Contrôle total Autorise : 1, 2, 3, 4, 5, 6, 7
2. Modifier Autorise : 2, 3, 4, 5, 6
3. Lecture et 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 vus 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, lorsque vous utilisez 644, cela signifie :

  • 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 ; Windows n'utilise pas le mécanisme de Groupes de la même manière. Pour cette discussion et en ce qui concerne l'environnement d'hébergement web, ils peuvent être considérés comme équivalents. Mais sous Windows, les Groupes ne sont pas utilisés et Everyone aurait dû être retiré. C'est là que Windows et Unix ne correspondent pas tout à fait, mais ce qu'on peut faire, c'est faire correspondre ou mettre en corrélation des significations équivalentes.

Ce document n'a pas pour but de fournir un guide spécifique des droits Windows ou NTFS, mais plutôt une compréhension de la manière dont les droits numérotés communément cités dans le style UNIX/Linux correspondent sur une machine avec un système de fichiers NTFS. Les fichiers placés dans le dossier racine www ou public_html, ou tout autre répertoire vers lequel pointe votre site (www.domain.com ou localhost) sur votre disque dur, devraient appartenir à votre compte d'utilisateur, mais uniquement si cet utilisateur n'est pas considéré comme un utilisateur privilégié tel que Administrateur sous Windows ou root sous UNIX/Linux. Ces comptes permettent un accès bien trop large et ne devraient jamais être utilisés pour un usage quotidien.

Bonnes pratiques

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

  • Propriétaire Lecture et écriture
  • Groupe Lecture seule
  • Autres Lecture seule

Tous les répertoires/dossiers devraient avoir les droits suivants.

  • Propriétaire Lecture, écriture et exécution
  • Groupe Lecture et exécution
  • Autres Lecture et exécution

On peut avancer 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écuter, 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 avez uniquement les droits Lecture & Écriture sur un répertoire mais pas Exécution, vous ne pourrez pas voir le contenu du répertoire et pourriez également rencontrer des problèmes lors de la tentative d'exécution du fichier via un navigateur web. Une certaine compréhension des droits UNIX/Linux est nécessaire pour les faire pleinement correspondre aux droits Windows. Le tableau suivant devrait vous y aider :

Mode Unix ACL Windows Commentaires
7 Modifier Lecture, Écriture & Exécution, vous devez ê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 utilisé couramment
2 Écriture seule non disponible via Windows, sauf si les Droits Spéciaux sont utilisés, peu utilisé couramment
1 Exécution seule (non disponible via Windows, sauf si les Droits Spéciaux sont utilisés, peu utilisé couramment)

En comparaison avec les modes Unix, lorsque vous voyez quelque chose comme 644, décomposez-le en trois éléments :

Le premier chiffre représente les droits du Propriétaire, le deuxième 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

Nous espérons que cet exemple vous donne un aperçu de la façon de faire correspondre les Modes/Droits Unix aux Droits/ACL Windows. Ce document n'aborde pas des 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 réalité relativement complexes et très étendus, mais ceci pourrait vous servir de référence rapide pour tenter de dissiper une partie de la confusion entourant la traduction des droits entre Unix et Windows.