Skip to content

Instantly share code, notes, and snippets.

@vancouverwill
Forked from macbleser/wp-permissions-script
Last active June 12, 2021 18:32
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save vancouverwill/b409515938548497bc7e to your computer and use it in GitHub Desktop.
Save vancouverwill/b409515938548497bc7e to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# This script configures WordPress file permissions based on recommendations
# from http://codex.wordpress.org/Hardening_WordPress#File_permissions
#
# Author: Michael Conigliaro
#
WP_OWNER=changeme # <-- wordpress owner
WP_GROUP=changeme # <-- wordpress group
WP_ROOT=/home/changeme # <-- wordpress root directory
WS_GROUP=changeme # <-- webserver group
CURRENT_USER=$(whoami)
# reset to safe defaults
find ${WP_ROOT} -exec chown ${WP_OWNER}:${WP_GROUP} {} \;
find ${WP_ROOT} -type d -exec chmod 755 {} \;
find ${WP_ROOT} -type f -exec chmod 644 {} \;
# allow wordpress to manage wp-config.php (but prevent world access)
chgrp ${WS_GROUP} ${WP_ROOT}/wp-config.php
chmod 660 ${WP_ROOT}/wp-config.php
# allow wordpress to manage .htaccess
touch ${WP_ROOT}/.htaccess
chgrp ${WS_GROUP} ${WP_ROOT}/.htaccess
chmod 664 ${WP_ROOT}/.htaccess
# allow wordpress to manage wp-content
find ${WP_ROOT}/wp-content -exec chgrp ${WS_GROUP} {} \;
find ${WP_ROOT}/wp-content -type d -exec chmod 775 {} \;
find ${WP_ROOT}/wp-content -type f -exec chmod 664 {} \;
sudo chown -R ${CURRENT_USER}:${CURRENT_USER} .git
@madurapa
Copy link

madurapa commented Jun 12, 2021

find ${WP_ROOT} -name .git -type d -exec chown -R ${CURRENT_USER}:${CURRENT_USER} {} \;
find ${WP_ROOT} -name .svn -type d -exec chown -R ${CURRENT_USER}:${CURRENT_USER} {} \;

I have added the above lines to make it works with both svn and git (recursive when you have multiple plugins, themes in the same project)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment