Folder Ownership Permissions for WordPress Updates and SFTP?

Posted September 19, 2016 16.7k views
WordPressLEMPUbuntu 16.04

When a WordPress installation folder is set to “www-data:www-data” then I am able to update/install WordPress updates and plugins but can edit the files using SFTP.

When a WordPress installation folder is set to “example:example” I can edit the wordpress files using SFTP but can’t perform WordPress core/plugin install/updates.

Currently have to switch between the two all the time. What permissions can one use to be able to do both? Assuming something along the lines of www-data:example or example:www-data or ideally example:example and add www-data to example group. All of which I’ve tried unsuccessfully, so assuming I’m missing a step. Can someone provide some sample commands to reach this commonly desired end goal? Thank you!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

The easiest way around this issue would be to add your SFTP user “example” (or whatever name you are using) to the www-data group. As long as your files have group read/write permissions set on them you’ll then be able to edit files via SFTP as “example” and make changes via WordPress (done as the www-data user) without having to reset ownership and permissions.

  • Yes, that’s one of the ones I’ve tried. Do you have the commands from start to finish to do this? I’ve read through the forums here with others wishing the same and people commenting with various commands and so far none of them and resulted in the desired functionality yet.

    • You can add your user to the www-group with:

      sudo usermod -a -G www-data example

      where the user is example.

      Once you’ve done this, with the default permissions (775 for folders) your user will have access to read/write files owned by the www-data group. Now update your file ownership with:

      chown -Rf www-data:www-data /var/www/html

      where /var/www/html is your web root.