VSFTPD configuration problems with 12.04
Solution 1:
In vsftpd.conf
Make the following change : pam_service_name=ftp
Save your change and restart the ftp server.
Solution 2:
There are several Reason why you may get this reason.
Firewall-->>Tcp_wrapper-->>PAM-->>SElinux-->>FTPService-->> File.
First Check if the given user is blocked or not in /etc/vsftpd/ftpusers /etc/vsftpd/user_list
Check SElinux Context or Boolean for the Same.
Check in PAM directory file. /etc/pam.d/vsftpd
auth required pam_shells.so
if user is not having required shell like in /etc/shells then it will give same error check getent passwd username match given shell with /etc/shells.