1.添加用户,指定用户默认的目录,并且限制远程ssh登陆

useradd -d /home/www/ftptest -s /sbin/nologin ftptest 

2.修改新建用户的密码

passwd ftptest

3.限制用户只能使用自己目录,不能切换到其他目录

chroot_local_user=YES
chroot_list_enable=YES

新建/etc/vsftpd.chroot_list
里面添加允许切换目录的用户
4.重启vsftpd

/etc/init.d/vsftpd restart

5.新建ftptest默认的目录

mkdir -p /home/www/ftptest
chown ftptest:ftptest /home/www/ftptest -R
chmod a-w /home/www/ftptest

chmod a-w /home/www/ftptest很重要,否则会报500 OOPS: vsftpd: refusing to run with writable root inside chroot()
因为启用了chroot,要求ftp根目录不可写,可以在/home/www/ftptest目录下再新建一个目录,并给予需要的权限即可

上述操作后发现无法登录,提示530错误,发现/etc/vsftpd.conf配置文件里

pam_service_name=vsftpd

是打开的,需要将/etc/pam.d/vsftpd里面的
auth required pam_shells.so修改为->auth required pam_nologin.so 或者将auth required pam_shells.so注释