Je me prépare à déployer un site Drupal 7 et je ne trouve aucune documentation sur les autorisations recommandées pour les fichiers et les répertoires sensibles à la sécurité.
Plus précisément default/files/
(également les sous-répertoires?) settings.php
, .htaccess
Et tout ce dont je devrais être au courant.
Réponses:
Votre serveur Web doit pouvoir lire tous les fichiers mais ne pas y écrire. Si votre site implique le téléchargement de fichiers, accordez au serveur la permission d'écrire dans ce seul dossier.
Plus d'informations sur la manière de le configurer, ainsi que sur certaines choses qui peuvent arriver si vous ne le faites pas, sont disponibles dans la documentation Drupal .
la source
Cette page drupal, comme tant d’autres, est très longue et déroutante. Mais il contient ce message de Jason, qui a mis le doigt dessus:
la source
Mon travail sur la création d'un nouveau site Drupal sur un serveur consiste à faire en sorte qu'un utilisateur fasse partie du groupe de serveurs Web (généralement Apache) et que cet utilisateur soit propriétaire de tous les fichiers Drupal. Sur Ubuntu, ce sont les commandes pour obtenir cette configuration:
Une fois cette configuration configurée, je me connecte en tant qu'utilisateur et installe Drupal sous / var / www / example / docroot ou similaire, puis crée le répertoire des fichiers à la main et copie le fichier settings.php. Puisque nous nous connectons en tant qu'exemple d'utilisateur avant de copier dans Drupal, la propriété et les autorisations de nos fichiers doivent automatiquement être correctement configurées sur tous les fichiers et scripts Drupal principaux (y compris les fichiers .htaccess).
Maintenant, configurons le répertoire de fichiers.
Ensuite, nous allons configurer les autorisations pour que le serveur Web puisse toujours écrire dans tous les fichiers de ce répertoire. Nous faisons cela en utilisant 2775 dans notre commande chmod. Le 2 signifie que l'identifiant du groupe sera préservé pour tout nouveau fichier créé dans ce répertoire. Cela signifie que www - data sera toujours le groupe sur tous les fichiers, garantissant ainsi que le serveur Web et l'utilisateur auront toujours les droits d'écriture sur tous les nouveaux fichiers placés dans ce répertoire. Le premier 7 signifie que le propriétaire (exemple) peut utiliser R (Lecture), W (Écriture) et X (Exécuter) tous les fichiers de ce fichier. Le second 7 signifie que ce groupe (www-data) peut également RW et X n’importe quel fichier de ce répertoire. Enfin, le 5 signifie que les autres utilisateurs peuvent utiliser les fichiers R et X, mais pas écrire.
S'il y a des fichiers existants dans ce répertoire, assurez-vous que le serveur Web dispose d'une autorisation d'écriture.
Drupal est maintenant prêt à être installé. Lorsque vous avez terminé, il est TRÈS important de revenir à settings.php et de vous assurer que tous les utilisateurs ont uniquement des autorisations de lecture.
C'est ça! Cette configuration garantit que vous évitez toute situation dans laquelle l'utilisateur qui détient le répertoire ou le serveur Web ne peut pas écrire / modifier / supprimer des fichiers dans le répertoire des fichiers.
la source
Le dossier de fichiers Drupal doit être accessible en écriture sur le serveur Web. Le moyen le plus sûr de le faire est de changer le groupe et de le rendre accessible en écriture, comme ceci:
Le dossier de téléchargement de fichiers mis à part, le plus sûr est chmod 644 pour tous les fichiers, 755 pour les répertoires.
Cela pourrait être accompli comme ceci (lorsqu'il est exécuté dans le dossier Drupal-site,
.
c'est pour le chemin actuel):N'oubliez pas que vous devrez
chmod g+w
redéfinir la configuration après avoir exécuté la commande ci-dessus, car elles réinitialiseront le chmod sur tous les fichiers et dossiers.la source
chgrp -R www-data sites/*/files
et jechmod -R g+w sites/*/files
supprime les erreurs de page d'état.Tout conseil de "chmod blah" ou "chown X" n'a pas de sens sans savoir: quel est l'utilisateur par défaut: groupe sur les fichiers, ni quel utilisateur et quels groupes votre serveur Web est exécuté.
Les documents Drupal auxquels d'autres ont fait référence sont assez bons sur le sujet, mais le module de révision de la sécurité est une autre ressource qui permet de s'assurer que tout est correctement configuré.
la source
Je répondrai compte tenu du cas où les fichiers sont créés sur le serveur en utilisant FTP, en utilisant des informations d'identification différentes de celle sous laquelle le serveur Web est exécuté (normalement, Apache ne s'exécute que sous la forme personne / personne). Cela signifie que l'utilisateur qui possède les fichiers créés manuellement avant d'exécuter le programme d'installation de Drupal (qui inclut également les fichiers téléchargés sur le serveur à partir de l'archive Drupal) n'est pas l'utilisateur utilisé pour exécuter le serveur Web (ni le nom d'utilisateur ni le groupe ne correspond). . Ce scénario s'applique également au cas où ces fichiers sont créés à l'aide de SSH.
default/files
répertoire) doit être (pour l'utilisateur affecté aux processus du serveur Web, qui est alors l'utilisateur affecté aux scripts PHP s'exécutant sur ce serveur Web):default/files/<directory-used-by-the-module>/<sub-directory-used-by-the-module>
)la source
Autorisations de fichier / répertoire recommandées:
Propriété de fichier / répertoire recommandée:
Voici les variables qui contrôlent les autorisations de répertoire / fichier par défaut pour les nouveaux éléments:
Voici un script pour la fixation des autorisations: fix-permissions.sh
Lire la suite:
Voici le script que j'utilise pour corriger les autorisations sur l'hôte distant pour les répertoires publics / privés:
Remarque: Le code ci-dessus essaiera de récupérer le groupe Apache et de le définir comme
GET_HTTP_GROUP
variable.la source
Ce script shell se trouve au bas de cette page: https://www.drupal.org/node/244924
Je l'exécute de temps en temps pour m'assurer que mes autorisations sont correctement configurées.
la source
De plus, si vous utilisez fastcgi, le php s'exécute en tant qu'utilisateur et aura accès à tous les fichiers auxquels l'utilisateur a accès, à moins que vous n'essayiez délibérément de l'éviter.
la source
Cela m'a aidé avec mes problèmes d'autorisation OSX. Je l'ai trouvé dans https://www.drupal.org/node/244924#comment-3741738 par un utilisateur du protoplasme. J'étais comme lui avoir des problèmes après une migration.
la source
Il existe un module appelé Examen de la sécurité qui vérifie si votre site est sécurisé ou non. J'ai également trouvé un très bon lien pour définir les autorisations du site.
la source