J'ai jeté un œil ici mais je n'ai trouvé aucun détail sur les meilleures autorisations de fichiers. J'ai également jeté un coup d'œil à certaines des questions du formulaire WordPress ici, mais quiconque suggère que 777 a évidemment besoin d'une petite leçon de sécurité.
En bref, ma question est la suivante. Quelles autorisations dois-je avoir pour les éléments suivants:
- dossier racine stockant tout le contenu WordPress
- wp-admin
- contenu wp
- wp-comprend
puis tous les fichiers dans chacun de ces dossiers?
Réponses:
Lorsque vous configurez WP, vous (le serveur Web) devrez peut-être accéder en écriture aux fichiers. Les droits d'accès peuvent donc devoir être lâches.
Après l'installation , vous devez serrer les droits d'accès , selon Durcissement WordPress tous les fichiers sauf pour wp-content doivent être inscriptibles par votre compte utilisateur uniquement. Le contenu wp doit également être accessible en écriture par www-data .
Vous voudrez peut-être changer le contenu de wp-content plus tard. Dans ce cas, vous pourriez
su
,Quoi que vous fassiez, assurez-vous que les fichiers disposent des autorisations rw pour www-data .
la source
www-data
??? Cela semble vraiment pas du tout sécurisé.Donner un accès complet à tous les fichiers wp à l'
www-data
utilisateur (qui est dans ce cas l'utilisateur du serveur Web) peut être dangereux. Donc, ne faites PAS ceci:Il peut cependant être utile au moment où vous installez ou mettez à niveau WordPress et ses plug-ins. Mais lorsque vous avez terminé, ce n'est plus une bonne idée de conserver les fichiers wp détenus par le serveur Web.
Il permet essentiellement au serveur Web de mettre ou d'écraser n'importe quel fichier de votre site Web. Cela signifie qu'il existe une possibilité de reprendre votre site si quelqu'un parvient à utiliser le serveur Web (ou une faille de sécurité dans un script .php) pour mettre des fichiers dans votre site Web.
Pour protéger votre site contre une telle attaque, vous devez:
Source et informations supplémentaires: http://codex.wordpress.org/Hardening_WordPress
la source
Pour ceux qui ont leur dossier racine wordpress sous leur dossier d'accueil:
** Ubuntu / apache
CRÉDIT Octroi d'autorisations d'écriture au groupe www-data
Vous souhaitez faire appel
usermod
à votre utilisateur. Ce serait donc:** En supposant que le
www-data
groupe existeVérifiez que votre utilisateur est dans le
www-data
groupe:groups yourUserName
Vous devriez obtenir quelque chose comme:
** youUserGroupName est généralement similaire à votre nom d'utilisateur
Modifier récursivement la propriété du groupe du dossier wp-content en conservant la propriété de votre utilisateur
chown yourUserName:www-data -R youWebSiteFolder/wp-content/*
Changez le répertoire en youWebSiteFolder / wp-content /
cd youWebSiteFolder/wp-content
Modifiez récursivement les autorisations de groupe des dossiers et sous-dossiers pour activer les autorisations d'écriture:
find . -type d -exec chmod -R 775 {} \;
** le mode de `/ home / yourUserName / youWebSiteFolder / wp-content / 'est passé de 0755 (rwxr-xr-x) à 0775 (rwxrwxr-x)
Modifiez récursivement les autorisations de groupe des fichiers et sous-fichiers pour activer les autorisations d'écriture:
find . -type f -exec chmod -R 664 {} \;
Le résultat devrait ressembler à quelque chose comme:
Équivalent à:
chmod -R ug + rw nom de dossier
Les autorisations seront comme 664 pour les fichiers ou 775 pour les répertoires.
Ps si quelqu'un rencontre une erreur
'could not create directory'
lors de la mise à jour d'un plugin, faites:server@user:~/domainame.com$ sudo chown username:www-data -R wp-content
lorsque vous êtes à la racine de votre domaine.
En supposant:
wp-config.php
possède desinformations d'identification FTP sur LocalHost
define('FS_METHOD','direct');
la source
Mieux vaut lire la documentation wordpress sur ce https://wordpress.org/support/article/changing-file-permissions/
la source
J'ai défini des autorisations sur:
Dans mon cas, j'ai créé un utilisateur spécifique pour WordPress qui est différent de l'utilisateur par défaut d'apache qui empêche l'accès du Web aux fichiers appartenant à cet utilisateur.
Ensuite, il autorise l'utilisateur apache à gérer le dossier de téléchargement et enfin à définir suffisamment d'autorisations de fichiers et de dossiers.
ÉDITÉ
Si vous utilisez W3C Total Cache, vous devez également faire la suivante:
Alors ça marchera!
ÉDITÉ
Après avoir développé des sites WordPress, je recommanderais différentes autorisations de fichiers par environnement:
En production, je ne donnerais pas accès aux utilisateurs pour modifier le système de fichiers, je leur permettrai seulement de télécharger des ressources et de donner accès à certains dossiers spécifiques aux plugins pour faire des sauvegardes, etc. Mais gérer des projets sous Git et utiliser des clés de déploiement sur le serveur, ce ne sont pas de bons plugins de mise à jour sur le staging ni la production. Je laisse ici la configuration du fichier de production:
www-data: www-data = utilisateur et groupe apache ou nginx
Le transfert partagera les mêmes autorisations de production qu'il devrait en être un clone.
Enfin, l'environnement de développement aura accès aux plugins de mise à jour, aux traductions, tout ...
www-data: www-data = utilisateur apache ou nginx et groupe your-user: root-group = votre utilisateur actuel et le groupe racine
Ces autorisations vous donneront accès à développer sous
themes
etyour-plugin
dossier sans demander la permission. Le reste du contenu sera la propriété de l'utilisateur Apache ou Nginx pour permettre à WP de gérer le système de fichiers.Avant de créer un dépôt git, exécutez d'abord ces commandes:
la source
Les autorisations correctes pour le fichier sont 644 Les autorisations correctes pour le dossier sont 755
Pour modifier les autorisations, utilisez le terminal et les commandes suivantes.
755 pour les dossiers et 644 pour les fichiers.
la source
Je pense que les règles ci-dessous sont recommandées pour un site wordpress par défaut:
Pour les dossiers à l'intérieur de wp-content, définissez les autorisations 0755:
plugins chmod -R 0755
chmod -R 0755 uploads
mise à niveau chmod -R 0755
Laissez l'utilisateur apache être le propriétaire des répertoires ci-dessus de wp-content:
chown apache uploads
mise à niveau apache chown
plugins apache chown
la source
Cela dépend en fait des plugins que vous prévoyez d'utiliser car certains plugins changent le document racine de wordpress. mais généralement je recommande quelque chose comme ça pour le répertoire wordpress.
Cela affectera la "racine" (ou quel que soit l'utilisateur que vous utilisez) en tant qu'utilisateur dans chaque fichier / dossier, R signifie récursif, donc cela ne s'arrête pas au dossier "html". si vous n'avez pas utilisé R, il ne s'applique qu'au répertoire "html".
Cela définira le propriétaire / groupe de "wp-content" sur "www-data" et permettra ainsi au serveur Web d'installer les plugins via le panneau d'administration.
Cela définira l'autorisation de chaque fichier du dossier "html" (y compris les fichiers dans les sous-répertoires) sur 644, de sorte que les personnes extérieures ne peuvent exécuter aucun fichier, modifier aucun fichier, le groupe ne peut exécuter aucun fichier, modifier n'importe quel fichier et seulement l'utilisateur est autorisé à modifier / lire des fichiers, mais même l'utilisateur ne peut exécuter aucun fichier. Ceci est important car il empêche tout type d'exécution dans le dossier "html", car le propriétaire du dossier html et de tous les autres dossiers, à l'exception du dossier wp-content, est "root" (ou votre utilisateur), le www-data peut ' t modifier tout fichier en dehors du dossier wp-content, donc même s'il y a une vulnérabilité dans le serveur web, et si quelqu'un accède au site sans autorisation, il ne peut pas supprimer le site principal à l'exception des plugins.
Cela restreindra la permission d'accéder à "wp-config.php" à l'utilisateur / groupe avec rw-r ----- ces autorisations.
Et si un plugin ou une mise à jour se plaignait qu'il ne pouvait pas se mettre à jour, alors accédez à SSH et utilisez cette commande, et accordez l'autorisation temporaire à "www-data" (serveur Web) pour mettre à jour / installer via le panneau d'administration, puis revenir retour à la "racine" ou à votre utilisateur une fois qu'il est terminé.
Et dans Nginx (même procédure pour l'apache) pour protéger le dossier wp-admin contre les accès non autorisés et les sondages. apache2-utils est requis pour crypter le mot de passe même si vous avez installé nginx, omettez c si vous prévoyez d'ajouter plus d'utilisateurs au même fichier.
Maintenant, visitez cet endroit
Utilisez ces codes pour protéger le dossier "wp-admin" avec un mot de passe, maintenant il vous demandera le mot de passe / nom d'utilisateur si vous avez essayé d'accéder au "wp-admin". remarquez, ici vous utilisez le fichier ".htpasswd" qui contient le mot de passe crypté.
Redémarrez maintenant le nginx.
la source
Commandes:
Où ftp-user est l'utilisateur que vous utilisez pour télécharger les fichiers
la source
$(whoami)
place deftp-user
. Par défaut, votre utilisateur actuel ( pas root ) est votre utilisateur FTP si vous utilisez votre propre serveur (local, vps, etc.)Pour vous assurer absolument que votre site Web est sécurisé et que vous utilisez les autorisations appropriées pour vos dossiers, utilisez un plugin de sécurité comme ceux-ci:
https://en-ca.wordpress.org/plugins/all-in-one-wp-security-and-firewall/
https://en-ca.wordpress.org/plugins/wordfence/
Ces plugins analyseront votre installation Wordpress et vous informeront de tout problème potentiel. Ceux-ci vous avertiront également des autorisations de dossier non sécurisées. En plus de cela, ces plugins vous recommanderont les autorisations à attribuer aux dossiers.
la source
la source
Je ne peux pas vous dire si cela est correct ou non, mais j'utilise une image Bitnami sur Google Compute App Engine. J'ai des problèmes avec les plugins et la migration, et après avoir gâché les choses en chmodant les autorisations, j'ai trouvé ces trois lignes qui ont résolu tous mes problèmes. Je ne sais pas si c'est la bonne façon mais cela a fonctionné pour moi.
la source
Pour OS X, utilisez cette commande:
la source
Définissez dans le fichier wp_config.
chown - change la propriété des fichiers / répertoires. C'est à dire. le propriétaire du fichier / dir change en celui spécifié, mais il ne modifie pas les autorisations.
la source
Sur la base de toutes les lectures et agonisations sur mes propres sites et après avoir été piraté, j'ai trouvé la liste ci-dessus qui inclut les autorisations pour un plugin de sécurité pour Wordpress appelé Wordfence. (Non affilié à elle)
Dans notre exemple, la racine du document wordpress est /var/www/html/example.com/public_html
Ouvrez les autorisations pour que www-data puisse écrire à la racine du document comme suit:
À partir du tableau de bord de votre site, en tant qu'administrateur, vous pouvez effectuer des mises à jour.
Site sécurisé une fois les mises à jour terminées en procédant comme suit:
La commande ci-dessus modifie les autorisations de tout dans l'installation wordpress pour l'utilisateur FTP wordpress.
La commande ci-dessus garantit que le plugin de sécurité Wordfence a accès à ses journaux. Le répertoire des téléchargements est également accessible en écriture par www-data.
La commande ci-dessus garantit également que le plug-in de sécurité a requis un accès en lecture-écriture pour son bon fonctionnement.
Autorisations sur les répertoires et les fichiers
Définissez les autorisations pour wp-config.php sur 640 afin que seul wp-user puisse lire ce fichier et personne d'autre. Les autorisations de 440 ne fonctionnaient pas pour moi avec la propriété du fichier ci-dessus.
Les mises à jour automatiques de Wordpress utilisant SSH fonctionnaient correctement avec PHP5 mais ont rompu avec PHP7.0 en raison de problèmes avec php7.0-ssh2 bundeld avec Ubuntu 16.04 et je n'ai pas trouvé comment installer la bonne version et la faire fonctionner. Heureusement, un plugin très fiable appelé ssh-sftp-updater-support (gratuit) rend possible les mises à jour automatiques en utilisant SFTP sans avoir besoin de libssh2. Ainsi, les autorisations ci-dessus ne doivent jamais être assouplies, sauf dans de rares cas si nécessaire.
la source