1. 安装vsftpd服务:
yum install vsftpd
2.修改vsftpd的一些配置项:
vi /etc/vsftpd/vsftpd.conf
#改为NO 就是禁止匿名用户登录
anonymous_enable=NO
#允许本地用户访问(/etc/passwd中的用户)
local_enable=YES
#允许写入权限,包括修改,删除
write_enable=YES
#禁止跳出当前用户权限目录
chroot_local_user=YES
3. 重启vsftpd并添加开机自启动:
systemctl restart vsftpd
systemctl enable vsftpd
4. 添加ftp用户并限制其不能进行ssh登录;修改ftp用户密码;修改目录权限,否则无法上传文件:
useradd -s /sbin/nologin -d /var/www/html ftpuser
passwd ftpuser
chmod o+w /var/www/html/
这里创建的用户为: ftpuser
尝试使用创建的ftpuser
进行ftp登录,ftp工具为 FileZilla
却显示"错误: 无法建立数据连接: ECONNREFUSED - 连接被服务器拒绝
"
或者
经查找,发现是vsftp主动模式和被动模式的锅,解决方法有两个:
1.设置FileZilla传输模式为主动:
2.配置vsftp被动模式项,vsftpd.conf最后面追加:
#设置是否允许被动模式
pasv_enable=YES
pasv_min_port=65000
pasv_max_port=65535
防火墙开端口 65000-65535
保存并重启vsftpd服务
尝试连接ftp,连接成功
上传文件的时候,却发现上传失败,显示"响应: 553 Could not create file.
":
解决的方法为:
#vi /etc/vsftpd/vsftpd.conf
#末尾添加
allow_writeable_chroot=YES
再次重启vsftpd
终于能正常连接ftp并且上传文件了