web-dev-qa-db-fra.com

Coffre-fort pour définir les autorisations à 757 temporairement pour mettre à jour via wp-cli?

Pile LEMP sur VPS digitalocean.

Je n'ai pas réussi à faire fonctionner "wp core update" à moins que public (ou "Autre") ne dispose d'une autorisation d'exécution, c'est-à-dire 757 ou 777.

Sinon, il génère "Erreur: Impossible de créer le répertoire" à chaque fois.

J'ai vérifié que l'utilisateur qui possède l'installation de wordpress est le même utilisateur qui exécute "wp core update"

Les choses que j'ai essayées jusqu'à présent sont la définition d'autorisations sur 775, chown www-data: www-data, déplacement du fichier wp-cli.

J'ai plusieurs sites Web en cours d'exécution sur ce droplet/serveur, et chacun rencontre le même problème.

Donc, supposons que je mette un cronjob pour définir les autorisations sur 757, mette à jour et redéfinisse sur 755 répertoires 644 fichiers 660 wp-config.php

Est-ce relativement sûr de faire? Est-ce que je mettrais considérablement les sites de mes clients en danger?

2
Josh Burson

Je pense que définir un travail cron pour activer et désactiver automatiquement les autorisations peut être un peu extrême :-) Je pense que cela vaut probablement la peine de passer du temps à configurer des autorisations de travail sur votre serveur, plutôt qu'un travail cron qui pourrait présenter d'autres problèmes.

Cela a été une bonne ressource pour moi - https://codex.wordpress.org/Hardening_WordPress .

Cela a également été une excellente ressource pour moi - https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-lemp-on-ubuntu-16-04

Voici les étapes que j'ai suivies pour autoriser les mises à jour automatiques/wp-cli de WordPress et des plug-ins sur un droplet Ubuntu avec NGINX en tant que serveur Web.

  1. Définissez les autorisations de fichier et de dossier recommandées:

    750 for Directories
    640 for Files
    except for wp-config.php, this should be 440.
    

    Pour faire cela pour les annuaires:

    find /srv/www/your-site/ -type d -exec chmod 750 {} \;
    

    et fichiers:

    find /srv/www/your-site/ -type f -exec chmod 640 {} \;
    

    et wp-config.php:

    Sudo chmod 440 your-site/wp-config.php
    
  2. Définissez le propriétaire et le groupe sur web: www-data web est un utilisateur non root doté d'autorisations utilisateur Sudo.

    Sudo chown -R web:www-data /srv/www/your-site
    

    Cette commande vous donnera plus d’informations sur les utilisateurs/groupes sous lesquels NGINX est exécuté:

    ps -eo pid,comm,euser,supgrp | grep nginx
    

    https://superuser.com/questions/398833/how-to-determine-the-user-and-group-of-a-deamon-in-ubuntu

    Le groupe est www-data dans mon cas.

  3. Définissez le bit setgid pour que tous les nouveaux fichiers héritent du groupe du répertoire parent.

    Sudo find /srv/www/your-site -type d -exec chmod g+s {} \;
    
  4. Donnez au groupe un accès en écriture au répertoire wp-content.

     Sudo chmod g+w /srv/www/your-site/wp-content
    
  5. Donnez au groupe un accès en écriture aux répertoires plugins, thèmes et uploads.

    Sudo chmod -R g+w /srv/www/your-site/wp-content/themes
    Sudo chmod -R g+w /srv/www/your-site/wp-content/plugins
    Sudo chmod -R g+w /srv/www/your-site/wp-content/uploads
    
  6. Assurez-vous que vous exécutez la commande de mise à jour principale en tant que propriétaire à l'étape 2, si nécessaire, basculez d'abord vers cet utilisateur.

    su web
    wp core update
    
1
junkrig