vsFTPd default uploaded file permissions on Ubuntu not working
Solution 1
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?
Solution 2
I ended up using
file_open_mode=0777
local_umask=022
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.
Related videos on Youtube
lucasmx
Updated on September 18, 2022Comments
-
lucasmx over 1 year
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:local_umask=022.
I've tried to change to:
file_open_mode=777 local_umask=002
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?
-
Gex about 10 yearsyou must to give permission to the FTP user.
-
-
Esa Jokinen about 9 yearsCare 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 have0
as a prefix for octal value. -
Nahid over 7 yearsdo not forget to restart the FTP server: sudo service vsftpd restart
-
Black about 5 years"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?
-
tesseract over 4 yearsWorked perfect. Thanks @lucasmx