Skip to content

Instantly share code, notes, and snippets.

@mo2menmuhamed
Created December 21, 2017 07:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mo2menmuhamed/f61a8a3a32b7399501e221b927d1c784 to your computer and use it in GitHub Desktop.
Save mo2menmuhamed/f61a8a3a32b7399501e221b927d1c784 to your computer and use it in GitHub Desktop.
Fix wordpress file permissions
#!/bin/bash
#
# This script configures WordPress file permissions based on recommendations
# from http://codex.wordpress.org/Hardening_WordPress#File_permissions
#
# 1- Add this file in public_html
# 2- give execute permissions by: chmod +x fix-wordpress-permissions.sh
# 3- use this command to execute
# sudo sh ./fix_wordpress_file_permissions.sh /home/yourwebsite-goes-here/public_html
#
# Thanks to Michael Conigliaro
#
WP_OWNER=nobody # <-- wordpress owner Checking by: egrep -i '^user|^group' /etc/httpd/conf/httpd.conf
WP_GROUP=nobody # <-- wordpress group Checking by: egrep -i '^user|^group' /etc/httpd/conf/httpd.conf
WP_ROOT=$1 # <-- wordpress root directory
WS_GROUP=nobody # <-- webserver group Checking by: egrep -i '^user|^group' /etc/httpd/conf/httpd.conf
# 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 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 {} \;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment