Comment mettre les bonnes permissions à Wordpress pour pouvoir faire les mises à jour?

Publié initialement à : https://korben.info/mettre-bonnes-permissions-a-wordpress-pouvoir-faire-mises-a-jour.html

Les permissions de WordPress, ce n’est pas toujours simple à gérer quand on n’y connait pas grand-chose en Linux. Mais rassurez-vous, je vais vous aider à mettre tout ça au carré. En effet, il se peut qu’en cas de mise à jour via l’interface WordPress, vous rencontriez le souci suivant : La mise à jour…

Tout bête mais terriblement efficace et rapide. Et tout bête pour ceux qui désire faire une installation propre sur un mutualisé sans se prendre la tête à controler les droit de fichier et dossier autant opter pour une installation automatique.

Euh du coup tu chown par le process qui exécute le code, tu rends donc toute ton arbo accessible en écriture en cas de faille. C’est mal, terriblement mal.

chown compte_de_deploiement.www-data monarbowordpress
find wp-content -type d | xargs chgrp 2770
find wp-content -type f | xargs chgrp 660

(et encore c’est trop large à mon goût)

Et après tu MAJ en ligne de commande avec ton compte de déploiement POINT !

2 « J'aime »

Clair que c’est juste horrible !
Tu pourrais faire un article sur wp-cli, un utilitaire qui permet de gerer tout son WP en ligne de commande. Il permet de mettre à jour le core les plugins, de gerer leur activation/désactivation et biennnn d’autres feature hypracool.

Ca permet de faire les maj avec un user non privilégié mais qui n’est pas le user qui fait tourner le serveur web et/ou php.

1 « J'aime »

Moi j’utilise un cron avec wp-cli dans un virtual Host chrooter en php-fpm nginx. Le cron se lance via l’user chrooter , c’est safe même avec un chmod 755 :wink:

Bof, pour moi les meilleurs droits sur wordpress c’est read-only pour tout le monde avec un script (shell) qui, si besoin de mise à jour débloque tout en read-write le temps de la mise à jour et remet tout en read-only ensuite.

Salut ! Juste une petite remarque : sur ma version d’Ubuntu la ligne de command “find” montrée ici ne fonctionne pas, j’ai trouvé qu’il fallait mettre un caractère d’échappement avant le point virgule final pour que le -exec soit accepté :

find . -type d -exec chmod 755 {} \;