How do I set default group ownership for files in a directory?

20

7

I am running a cakephp webapp on Linode LAMP. I am finding that my temp files are created with root:root ownership. But the webapp is running with Apache's permissions (www-data). This causes warnings any time there is a new file created because it is not writable for user www-data.

How do I change the default ownership to www-data on any new files created in the temp folder?

Thanks for your help!

tnichols

Posted 2012-06-15T05:04:41.407

Reputation:

Answers

23

To assign group ownership by www-data regardless of the uid/gid of the process that creates the file, you need to set the setgid bit on the directory.

    sudo chown :www-data <dir>
    sudo chmod g+s <dir>

Note that you must also make the directory writable by whatever process will create the files. If that's anyone but root, you may also need chmod o+rwx to get things working properly.

CodeGnome

Posted 2012-06-15T05:04:41.407

Reputation: 1 841

What about sub-directories? – mcont – 2014-12-23T21:07:47.537

Appending the -R flag to chown and chmod makes that command recursive. So the commands below will assign default group ownership to <dir> as well as all subdirectories of <dir>: sudo chown -R :www-data <dir> and sudo chmod -R g+s <dir> – Josh Wieder – 2015-08-02T14:04:13.803