ubuntunginx

Nginx user cannot access Ubuntu folder


I'm running Nginx on a Ubuntu server. Nginx does not have permission to access my project folder as show below.

sudo -u www-data stat /home/mainuser/projectname/
stat: cannot statx '/home/mainuser/projectname/': Permission denied

I know it's an issue specific to this project folder and user because

sudo -u www-data stat /home/mainuser/

and

sudo -u mainuser stat /home/mainuser/projectname/

also runs fine.

I've been trying to follow this thread and so I've tried the following solutions... I tried setting

sudo chmod 755 /home/mainuser/projectname/

and

sudo chown -R :www-data /home/mainuser/projectname/

and when I run ls -l

I can see these permissions have been applied to the directory

total 4
drwxr-xr-x 7 mainuser www-data 4096 May 28 05:13 projectname

But still the Nginx www-data user does not have permissions to access the dir. What am I missing, how do I give this user access to this directory?

EDIT:

I made another dir /test and even after sudo chmod 777 test/ I do not have permission to access it as the Nginx user either.


Solution

  • The upstream directory mainuser was missing permissions.

    Even though

    sudo -u www-data stat /home/mainuser/
    

    worked, the following gave a permission error which clued me in.

    sudo -u www-data ls /home/mainuser/
    

    After that sudo chmod :www-data /home/mainuser fixed it