安装vsftpd服务
yum install -y vsftpd
修改配置文件
vim /etc/vsftpd/vsftpd.conf 改动如下
# 禁止匿名用户anonymous登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 让登录的用户有写权限(上传,删除)
write_enable=YES
# 默认umask
local_umask=022
# 允许ASCII模式上传
ascii_upload_enable=YES
# 允许ASCII模式下载
ascii_download_enable=YES
chroot_local_user=YES # 将用户限制在自己的目录下
chroot_list_enable=NO # 禁止用户向上级文件夹进行翻阅
chroot_list_file=/etc/vsftpd/chroot_list # 允许ftp登录用户帐号列表
listen=NO 一定要改为YES
注释掉 listen_ipv6=YES
添加如下语句,开启被动模式
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30500
allow_writeable_chroot=YES
保存并退出
创建FTP用户
创建ftp上传目录
cd /home
mkdir www
cd www
mkdir ftpuser
增加用户ftpuser,指向目录/home/wwwroot/ftpuser,禁止登录SSH权限
useradd -d /home/www/ftpuser -g ftp -s /sbin/nologin ftpuser
设置用户口令
passwd ftpuser
vi /etc/vsftpd/chroot_list 将新建用户添加进文本 每个用户名独占一行
为FTP账户开通文件夹权限
cd /home/www
chown -R ftpuser /home/www/ftpuser
chmod -R 777 /home/www/ftpuser
防火墙开通端口
firewall-cmd --zone=public --add-port=20-21/tcp --permanent
firewall-cmd --zone=public --add-port=30000-30500/tcp --permanent
firewall-cmd --reload
启动FTP服务
systemctl start vsftpd.service
设置开机自启动
chkconfig --level 35 vsftpd on
解决目录列表无法浏览的问题
getsebool -a | grep ftp
执行下面命令
setsebool -P allow_ftpd_full_access 1
setsebool -P ftp_home_dir on
重启FTP
service vsftpd restart
登录验证
遇到的问题一
响应: 530 Login incorrect.
错误: 严重错误: 无法连接到服务器
解决方法如下
# 查看下你的登录账户的主目录 和 登录的Shell对应的是什么,我的是sbin/nologin
cat /etc/passwd
# 查看下与你账户对应的Shell有无,如果没有,进行添加,然后保存退出即可
cat /etc/shells
再次进行登录验证,看看结果如何
状态: 正在连接 192.168.18.95:21...
状态: 连接建立,等待欢迎消息...
状态: 不安全的服务器,不支持 FTP over TLS。
状态: 已登录
状态: 读取目录列表...
状态: 列出“/home/www/ftpuser”的目录成功
状态: 连接被服务器关闭