Thanks so much for your help nuwin, it works like a charm now! The wildcard there is really causing the wrong authentication error and screwed up the display on ftp.
motokochan, thanks for your suggestion too, but my PHP is 5.2.11, not 5.3 and the error is not thrown from PHP, I have checked the logs. nuwin is right, I tried with latest stable 1.0.2 and 1.0.3 nightly build and both are reproducing the same error. That wildcard in the proftpd.conf is really causing the problem and that should be filed as a bug.
Attached is the log from my /var/log/secure and it shows the same errors in nuwin's test.
Code:
Dec 17 04:48:43 host proftpd: pam_unix(proftpd:auth): check pass; user unknown
Dec 17 04:48:43 host proftpd: pam_unix(proftpd:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/ftpd23511 ruser=tmp_4b2947ab8911d@~~~~~~~~~.com rhost=127.0.0.1
Dec 17 04:48:43 host proftpd: pam_succeed_if(proftpd:auth): error retrieving information about user tmp_4b2947ab8911d@~~~~~~~~~.com
Dec 17 04:48:45 host proftpd[23511]: host.~~~~~~~~~.com (127.0.0.1[127.0.0.1]) - USER tmp_4b2947ab8911d@~~~~~~~~~.com (Login failed): Incorrect password.
Dec 17 04:48:45 host proftpd[23511]: host.~~~~~~~~~.com (127.0.0.1[127.0.0.1]) - FTP session closed.
Dec 17 04:58:59 host proftpd: pam_unix(proftpd:auth): check pass; user unknown
Dec 17 04:58:59 host proftpd: pam_unix(proftpd:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/ftpd23897 ruser=tmp_4b294a130e537@~~~~~~~~~.com rhost=127.0.0.1
Dec 17 04:58:59 host proftpd: pam_succeed_if(proftpd:auth): error retrieving information about user tmp_4b294a130e537@~~~~~~~~~.com
Code:
(218.254.184.138[218.254.184.138]) - USER ftp@~~~~~~~~~.com: Login successful.
Dec 19 14:38:02 host proftpd[30325]: host.~~~~~~~~~~.com (218.254.184.138[218.254.184.138]) - FTP session closed.