首先强调一点,配置vsftpd有一个坑【调试了好久】
配置流程直接参考这篇文章即可:https://blog.csdn.net/u010784217/article/details/77801013
下面这篇弥补一下:https://blog.csdn.net/qq_32835907/article/details/73201403
关于用户的一些操作看这里【自己百度查即可】:https://www.runoob.com/linux/linux-user-manage.html
第一个坑:你添加的用户能访问的路径不能在root目录【否则后续登录FTP会提示无权限】
# 这里不能是/root/下面的目录【root目录仅root用户可以访问】
useradd -d /home/www -g ftpgroups ftptest
切记:此FTP用户必须禁止登录ssh,必须设置禁用权限!
第二个坑:关于用户不能访问上级目录的限制【仅能访问当前目录】的配置:参考https://blog.csdn.net/crazyamil/article/details/40041985
chroot_list_enable=NO
chroot_local_user=YES
如果仅这么配置,一定会报错:https://blog.csdn.net/bluishglc/article/details/42399439
还得增加一条配置【在结尾】:
allow_writeable_chroot=YES
第三个坑:最后还必须把你要访问的ftp用户名添加至/etc/vsftpd/chroot_list文件【没有就创建一个】不然无法登陆FTP
综上所述,整个vsftpd的配置如下:
anonymous_enable=NO #设置不允许匿名账户登录
# 两个配置代表不允许用户访问上级目录
chroot_local_user=YES #所有用户限制在主目录中
chroot_list_enable=NO #不启动限制用户名单,直接限制所有用户
# 必须在此文件内添加你的ftp用户名【一行一个】不然无法登陆ftp
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES #(在文件尾部新增)防止用户有写入权限时报错
# ftp访问的默认路径【可选】
local_root=/home/www #(在文件尾部新增)设置用户的根目录