1

When I upload files through php, it writes the file with the permissions 644 (-rw-r--r--).

I have my /var/www/html folder setup with setgid, so that all files uploaded are set to a group that should be allowed explicit access (FTP, etc). However, 644 permissions do not allow the group of the file to write, which is a problem.

How can I configure apache2, so that all files/directories created by www-data within the /var/www/html folder have the permissions 775 (-rwxrwxr-x) set to them?

I am running Ubuntu 14.04 on a DigitalOcean VM with Apache 2.2.

2 Answers 2

1

Apache inherits its umask from its parent process (i.e. the process starting Apache). This should typically be the /etc/init.d/{apache,httpd} script. So you can put a umask command in that script.

# echo "umask 002" >> /etc/init.d/httpd

and then:

# /etc/init.d/httpd restart

Or you can also run this command:

# echo "umask 002" >> /etc/sysconfig/httpd

and then

# /etc/init.d/httpd restart
1
  • These solutions add a umask line to the end of the script, which mostly isn't helpful. The sysconfig version will likely work (as the file is sourced/read by the init.d script); the init.d version will not work (as httpd has already been started, so the umask at end of the file comes too late to have any effect). Regardless, adding a line at the end of a script often doesn't work as the script may contain an "exit" which stops the line being seen (you may have checked for this, if so, understood).
    – Brian C
    May 3, 2018 at 2:08
0

You can change the permissions after uploading the file with the php function chmod.
http://php.net/manual/en/function.chmod.php

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .