Permission denied writing files through sftp

January 11, 2015 27.4k views

I have a droplet running ubuntu 14.04 and a LEMP stack. I have subdomains on the /var/www folder with each having its own folder inside /www. I have one user with root permissions that is the one that I use for ssh and sftp. When I trie to write the file via sftp I have permission denied.

All the folders have 755 and the file have 644.

What do I need to change to get it working?

4 comments
  • you could try this:

    make sure your user is a member of the www-data group:

    sudo usermod -a -G www-data $USER
    

    then give group permissions:

    sudo chmod -R 775 /var/www
    
  • @sierracircle - Apologies for the nitpick. I know you need exec for directories to look inside, but why give exec permissions for all files in /www or /var/www?

  • Try it, and if that works for you then use that. Better to have as strict permissions as possible.

    In this case, I was suggesting a quick way to be able to edit files. Did that work?

  • @sierracircle it didn't work but after I deleted the file and uploaded one from my computer it worked.

2 Answers

This question was answered by @sierracircle:

you could try this:

make sure your user is a member of the www-data group:

sudo usermod -a -G www-data $USER

then give group permissions:

sudo chmod -R 775 /var/www

You can see the comment here.

I use MobaXterm and I was getting this error when trying to upload a file from my Windows XP file system to a CentOS 7.2 droplet. Error: "SFTP error #1: Permission denied". I run Apache 2. After finding this document I tried the "sudo usermod -a -G www-data $USER" command and I got the response:

usermod: group 'www-data' does not exist

So I tried using this command:

$ sudo usermod -a -G www $USER

...and it worked. Also I checked the sudo file using: visudo but I didn't see the user listed in the www group. But it seemed to work.

Have another answer? Share your knowledge.