I had the same problem, running vsftpd on Ubunto 13.10, and none of the suggestions worked.
After a lot of googleing, I stumbled upon the same issue in the Redhat Bugzilla
Their solution, which worked for me: recompile the vsftpd package after modifying the source file defs.h (the DEFINE VSFTP_AS_LIMIT has to be changed to the value "400UL * 1024 * 1024"). I don't claim to understand what that does, but now everything works perfectly for me.
To recompile the package, follow these steps (this is for Ubuntu 13.10, but should work similar for other releases):
- add source repositories to /etc/apt/sources.list by adding the line
deb-src http://archive.ubuntu.com/ubuntu saucy main universe restricted
- Update the package lists:
sudo apt-get update
- Install some utilities needed for compiling stuff:
sudo apt-get install fakeroot build-essential
- Get everything that is needed for compiling vsftpd:
sudo apt-get build-dep vsftpd
- Get the vsftpd sources:
apt-get source vsftpd (this works as a non-root user)
- Change VSFTP_AS_LIMIT in the
defs.h file to the value
400UL * 1024 * 1024
- Commit the changes, or compile will fail:
dpkg-source --commit. This will create a new patch file. You are then prompted to enter a name and info for that post.
- Re-build vsftpd:
fakeroot buildpackage. It should compile, and there should be a new .deb-file created.
- Install this newly created package:
dpkg --install vsftpd_3.0.2-1ubuntu2_amd64.deb (change the file name accordingly)
That's it, worked for me. It might be a good idea to put that package on hold so it will not be overwritten when a new official package is released by the Ubuntu team.
Update: I just tried this on Ubuntu 12.04 LTS, worked as well.