setuid and setgid are for *execution* and not access control. I can't comment on your exact problem, but when I move a site, I do sudo find /path/to/site/default/files -type d -exec chmod 755 {} \; sudo find /path/to/site/default/files -type f -exec chmod 644 {} \; sudo find /path/to/private -type d -exec chmod 755 {} \; sudo find /path/to/private -type f -exec chmod 644 {} \; sudo chown -R apache.apache /path/to/docroot/site/default/files sudo chown -R apache.apache /path/to/private By default, files are in `site/default/files` but this location can vary for a few reasons - Admin setting for public files - Admin setting for private files - Whether the files use public or private - Whether you use the default location, or a site alias and probably some others I can't think of. I suspect that your write errors will show up in your Apache `error_log` and you should also see what the status report (`admin/reports/status`) says. Note that the private paths/settings are for Drupal 7 only, but the rest applies.