FTP

ftp client

$ ftp localhost

Connected to localhost.
220 ProFTPD 1.3.5rc3 Server (localhost) [::ffff:127.0.0.1]

Name (localhost:lee): xxxxx
331 Password required for wordpressuser

Password:

230 User wordpressuser logged in
Remote system type is UNIX.
Using binary mode to transfer files.

ftp>

proftpd

how to add a ftp user:

by default proftpd user system users and password in /etc/passwd for login

But this is not convinient, we can use virtual ftp-only users instead, which is accomplished by using ftpasswd command

ref: ProFTPD Virtual Users, ProFTPD Logins and Authentication

use uid and gid of default webserver user uid and gid

cd /etc/proftpd/
ftpasswd --group --gid 33 --name ftpgroup
ftpasswd --passwd --name wordpressuser --home /var/www/wordpressuser_home/ --shell /bin/false --uid 33 --gid 33

make sure the output file ftpd.passwd and ftpd.group are readable by ProFTPD user: default to proftpd

in proftpd config file (eg. /etc/proftpd/proftpd.conf):

RequireValidShell   off
AuthOrder mod_auth_file.c               # only use the following files for auth, do not use system users (mod_auth_unix.c)
AuthUserFile /etc/proftpd/ftpd.passwd
AuthGroupFile /etc/proftpd/ftpd.group