I have a php installed on my ubuntu machine. The web root is /var/www
I set the permissions for this folder like so:
sudo chown -R ftpuser:www-data /var/www
ftpuser is the user I set up so I can ftp to /var/www from another machine on the network. www-data is the user php uses. I double checked using whoami
from php.
Whenever I ftp upload a new file to the machine the group has no permissions to the file. So when I try to access it in my browser via machine-name/new-file.php
I am told permission denied and I have to go and chmod
the new file.
I am wondering if there is a way I can default the www-data user/group to have access permissions to new files so I don't have to keep chmod every new file?
Best Answer
You could use ACL. To set up ACL for Ubuntu 10.10, first mount the file systems with the acl option in /etc/fstab.
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 defaults,acl 0 1
Then make a group to which a user may belong for this purpose.
The user needs to log out and in again to become a member of the developers group.
Of course, do not do this if you have content in the /var/www directory that you want, but just to illustrate setting it up to start:
Then replace references to "/var/www" with "/var/www/public" in a config file and reload.
If we wanted to restrict delete and rename from all but the user who created the file:
This way, if we want to create directories for frameworks that exist outside the Apache document root or maybe create server-writable directories, it's still easy.
Apache-writable logs directory:
Apache-readable library directory: