Eu tive o mesmo problema, executando o vsftpd no Ubunto 13.10, e nenhuma das sugestões funcionou.
Depois de muito googleing, me deparei com o mesmo problema no Redhat Bugzilla
A solução deles, que funcionou para mim: recompilar o pacote vsftpd depois de modificar o arquivo de origem defs.h (o DEFINE VSFTP_AS_LIMIT deve ser alterado para o valor "400UL * 1024 * 1024"). Eu não pretendo entender o que isso faz, mas agora tudo funciona perfeitamente para mim.
Para recompilar o pacote, siga estes passos (isto é para o Ubuntu 13.10, mas deve funcionar de forma semelhante para outras versões):
- adicione repositórios de origem ao /etc/apt/sources.list adicionando a linha
deb-src http://archive.ubuntu.com/ubuntu saucy main universe restricted
- Atualize as listas de pacotes:
sudo apt-get update
- Instale alguns utilitários necessários para compilar o material:
sudo apt-get install fakeroot build-essential
- Obtenha tudo o que é necessário para compilar o vsftpd:
sudo apt-get build-dep vsftpd
- Obtenha as fontes vsftpd:
apt-get source vsftpd
(isso funciona como um usuário não raiz)
- Altere VSFTP_AS_LIMIT no arquivo
defs.h
para o valor 400UL * 1024 * 1024
- Confirme as alterações ou a compilação falhará:
dpkg-source --commit
. Isto irá criar um novo arquivo de patch. Você será solicitado a inserir um nome e informações para essa postagem.
- Re-compile o vsftpd:
fakeroot buildpackage
. Ele deve compilar e deve haver um novo arquivo .deb criado.
- Instale este pacote recém-criado:
dpkg --install vsftpd_3.0.2-1ubuntu2_amd64.deb
(altere o nome do arquivo de acordo)
É isso, funcionou para mim. Pode ser uma boa ideia colocar esse pacote em espera para que ele não seja sobrescrito quando um novo pacote oficial for lançado pela equipe do Ubuntu.
Atualização: Eu tentei isso no Ubuntu 12.04 LTS, também funcionou.