I have a Server running Ubuntu 12.10 x64, and the last version of vsFTPd.

My user example.com has its home folder set on /var/www/example.com,

I created a public_html folder inside and gave 777 permisions to it, and removed the writing permissions of the home user folder. Everything is working well but:

Every file I upload by FTP (using SmartFTP) gets a chmod of 0.

My vsftpd.conf had only one line related:


I've tried to change to:


So my files would get 775 as soon as uploaded.

But only my uploaded folders are getting 775 permissions.

My uploaded files get 1411 permissions

Can someone help me solving that?

  • you must to give permission to the FTP user.
    – Gex
    Commented Feb 18, 2014 at 0:56

5 Answers 5


I ended up using


on the vsftpd.conf. The problem was that both FTP user and www-data user needed permissions to write, so i had to join www-data and ftpuser to www-data usergroup, and CHMOD -R 775 all the files on /var/www - that way, with 775 CHMOD, the group would have permission to read, write and execute. Now its working perfectly.

  • 2
    do not forget to restart the FTP server: sudo service vsftpd restart
    – Nahid
    Commented Feb 3, 2017 at 10:33

Got my answer:

As the www-data is the user responsible for the webserver and your normal user is responsible for the ftp server, you need first to make them both members of the same group: the group www-data.

Creating custom User:

useradd –d /var/www/asasd.com -g www-data -m yourusername this way the home directory will be the /var/www/asasd.com and your user will be in the www-data group.

after this, change the user pass by typing passwd.

Then, you need to create a public_html folder inside your yourusername home folder, as the FTP wont be able to write in the root of your home folder, you have to create a subfolder.

Remove write permissions of your yourusername folder chmod a-w /var/www/asasd.com

Then, apply new permissions for the subfolder: chmod -R 775 /var/www/asasd.com/public_html (note you must use 775 chmod because you need group write permissions, not user write permissions, as you want the whole group (ftp and www-data) being able to write) Then, own the folder for the www-data chown -R www-data:www-data /var/www/asasd.com/public_html

That way you must be able to use FTP and have a Webserver working.

Good luck!

Funny this info is so hard to find. Are people not sharing knowledge anymore?

  • "you need first to make them both members of the same group: the group www-data" How to put my ftp user in the group www-data?
    – Black
    Commented Mar 6, 2019 at 10:30
  • Worked perfect. Thanks @lucasmx Commented Aug 28, 2019 at 13:52

I also had problem like the file permission is changed when i upload a file through my ftp. This is fixed with one line change in my vsftpd.conf

local_umask=val(like 022,007,etc.,)

  • Care to improve and open this a little bit? Why is this better than the previous alternatives and what does it actually do, since this kind of syntax is not described in the manual page at all: local_umask has to be single value, and it must have 0 as a prefix for octal value. Commented Mar 28, 2015 at 12:31

If you are using ftp or anonymous user to upload files, please use below lines to set the upload file permission to 644 in /etc/vsftpd/vsftpd.conf file


Final permission is 666-022 = 644.


you need to change the ownership of that file:

chown root:root /home/username

You must log in to answer this question.

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