一、安装vsftpd
1.安装vsftpd
yum install -y vsftpd
安装完成如图:
2.设置开机自启动
systemctl enable vsftpd.service
systemctl start vsftpd.service
二、添加用户并限制目录及指定用户访问指定目录
1.关闭SElinux
setenforce 0
2.创建用户并创建用户专属目录并限制用户登录
useradd -d 目录 -s /sbin/nologin 用户
如 useradd -d /home/ftp/ ftp
3.为用户创建密码
passwd 用户
输入密码
如 passwd ftp
输入密码:ftp(密码太简单会要求确认输入,重新输入一遍即可,不过最好还是建议安装Linux密码规则设置复杂点的密码)
三、vsftpd配置文件配置
1.打开配置文件:
cd /etc/vsftpd
vim vsftpd.conf
2.把chroot_local_user、chroot_list_enable和chroot_list_file注释去掉,如图:
四、给文件夹附上权限
chown 用户:用户组 目录
chmod 755 -R 目录
如:
chown -R ftp:ftp /home/ftp/
chmod 755 -R /home/ftp/
五、测试
1.重启服务
service vsftpd restart
2.登录ftp
ftp 127.0.0.1
登录后出现如下成功:
六、常见问题
1.出现文件和主目录已经存在的错误,如图:
找到信箱文件夹名称的信箱文件删除,如
find / -name “*ftp”
rm -rf /var/spool/mail/ftp
2.出现用户已存在
userdel 用户名
如userdel ftp删除用户即可
3.登录出现500 OOPS:cannot change directory
检查目录包括目标目录和各级目录用户是否都具有权限
4.登录出现530 Login incorrect
vim /etc/shells检查有没有/sbin/nologin,如图:
PS:关于chroot_local_user和chroot_local_user
chroot_local_user=YES | chroot_local_user=NO | |
chroot_list_enable=YES | 1.所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制 | 1.所有用户都不被限制其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制 |
chroot_list_enable=NO | 1.所有用户都被限制在其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 | 1.所有用户都不被限制其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 |