Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save manutheblacker/01a0024bc8bdd26f060fbd8c78b6b0f1 to your computer and use it in GitHub Desktop.
Save manutheblacker/01a0024bc8bdd26f060fbd8c78b6b0f1 to your computer and use it in GitHub Desktop.

Revisions

  1. @Adirael Adirael created this gist Aug 17, 2012.
    25 changes: 25 additions & 0 deletions fix-wordpress-permissions.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,25 @@
    #!/bin/bash
    #
    # This script configures WordPress file permissions based on recommendations
    # from http://codex.wordpress.org/Hardening_WordPress#File_permissions
    #
    # Author: Michael Conigliaro <mike [at] conigliaro [dot] org>
    #
    WP_OWNER=www-data # <-- wordpress owner
    WP_GROUP=www-data # <-- wordpress group
    WP_ROOT=$1 # <-- wordpress root directory
    WS_GROUP=www-data # <-- webserver group

    # 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 {} \;