Drupal - Drush and user permissions

Arguably, a much more straightforward approach is to not muck with your user's group assignments at all and instead run drush as the web server user (ie: apache, www-data).

Use sudo:

sudo -u apache drush

or on debian/ubuntu:

sudo -u www-data drush

Create a command alias:

Then, to ensure that you always run drush like that, add an alias:

echo "alias drush='sudo -u apache drush'" >> ~/.bash_aliases 

or on debian/ubuntu:

echo "alias drush='sudo -u www-data drush'" >> ~/.bash_aliases 

Now when running any drush command, you'll be prompted for your password by sudo, and the command will run as the web server user. No more permissions problem reading and writing files.

Though the other answer is informative, I now use the proper user permission as described in

Securing file permissions and ownership

  • https://www.drupal.org/node/244924

Which opens with

The server file system should be configured so that the web server (e.g. Apache) does not have permission to edit or write the files which it then executes. That is, all of your files should be 'read only' for the Apache process, and owned with write permissions by a separate user.