VSFTPD 553 error: could not create file
Fresh LAMP server setup with Ubuntu 12.04 and VSFTPD.
I'm trying to access the /var/www folder (web root) with FTP user.
I created a new user ftpuser and added it to the www-data user group created automatically by Apache.
Home directory of that user is set to /var/www.
I also changed the ownership of the /var/www to www-data group and changed permissions to 02775.
However, I'm still not able to upload files. Error is: "553 Could not create file".
- Can someone please explain me how to set these permissions properly?
- What is the correct setup? Should I set the home directory of
ftpuserto/var/wwwor somehow diffeerently?
I found a lot of topics on the web but none of them offer a universal solution.
Thank you!
UPDATE:
Here is the output of ls -l of /var/www:
drwxr-sr-x 3 root ftpuser 4096
Content of vsftpd.conf file:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftpuser
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key 3 3 Answers
The problem is because your folder is owned by root, instead of ftpuser.
To fix it run:
sudo chown -R ftpuser:nogroup /var/www/ftuuserfolder 0 I found I had set the correct ownership, but not the correct permissions.
If your folder is owned by the user 'ftpuser' and group 'www-data' for example, like...
drwxr-sr-x 3 ftpuser www-data 4096
Then you probably haven't run...
sudo chmod -R g+w /var/www/ftpuserfolder
Which gives write permission to the group that owns those files/folders.
For me nothing worked. I figured out that the initial directory in my FTP Client was set to nothing, so it tried to access the linux root directory. I was letting it empty first, because I thought it will pick the users home directory.
I had to specify the full path to the project.