Houve um problema antigo com o SELINUX que não permitia que usuários de FTP escrevessem em seus caminhos iniciais.
Até onde eu vi, você pode consertar isso de duas maneiras:
[1] Disable selinux (não recomendado para ambiente de produção)
[2] execute o seguinte comando como root (o preferido):
setsebool -P ftp_home_dir=1
Editar:
Você pode ter certeza que write_enable=YES
foi adicionado em /etc/vsftpd/vsftpd.conf?
Editar 2:
Eu pensei em várias outras coisas que podem ser um problema, mas são relativamente fáceis de verificar:
Arquivo já existe, mas você não tem permissão para sobrescrevê-lo
O disco está cheio (ou quota alcançada)
Além disso, isso pode ser um problema esquisito de umask, com overriding do vsftp. As pastas que você cria 644?
Para usuário user1, qual é a saída do comando umask
?