500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp

I've been tearing my hair out over this: vsftp does not work on any of my RedHat Server 5.x systems - I keep getting a variation on 500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp or 500 OOPS: cannot locate user entry:nobody (different errors on different systems). I spent some time on google trying to find a solution, to no avail. I even tried to build from source but ran into other issues.

No matter what I change the ftp_username value to, I get the same result.

The ftp & nobody users exists in /etc/passwd

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin

Here's my vsftpd.conf file (comments removed for brevity)

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
nopriv_user=ftp
listen=YES
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES
check_shell=NO
ftp_username=ftp

/etc/nsswitch.conf

passwd:       files [NOTFOUND=continue] nis
group:        files [NOTFOUND=continue] nis
hosts:        dns [NOTFOUND=continue UNAVAIL=continue TRYAGAIN=continue] nis [NOTFOUND=continue UNAVAIL=continue TRYAGAIN=continue] files
networks:     nis [NOTFOUND=return] files
protocols:    nis [NOTFOUND=return] files
rpc:          nis [NOTFOUND=return] files
publickey:    nis [NOTFOUND=return] files
netgroup:     nis [NOTFOUND=return] files
automount:    nis files
aliases:      nis files
services:     nis files
# ps -ef|grep vsftp
root     28607     1  0 Jul01 ?        00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

add the following line in /etc/vsftp.conf

ftp_username=nobody

that may work. One more reason to use pureftpd but if you must use vsftpd that is something you need to do.