centos7 安装vsftp
centos7 安装vsftp
原文链接:https://www.cnblogs.com/zsg88/p/15607173.html
1 、yum 安装vsftp
yum -y install vsftpd
常用命令:
设置开机启动
systemctl enable vsftpd
启动
systemctl start vsftpd
重启
systemctl restart vsftpd
停止
systemctl stop vsftpd
查看状态
systemctl status vsftpd
2 、创建ftp 目录
mkdir -p /home/ftproot/ftptest
创建用户ftptest,并且指定其目录为用户目录中创建的/home/ftproot/ftptest
useradd -d /home/ftproot/ftptest -g ftp -s /sbin/nologin ftptest
-g ftp 表示该用户属于ftp分组 (ftp分组是内置的,本来就存在,不需要自己创建)
-s /sbin/nologin 表示这个用户不能用来登录secureCRT这样的客户端,这种不能登陆的用户又叫做虚拟用户
创建过程给出的警告信息是正常的,不用理会
把目录/home/ftproot/ftptest的拥有者设置为ftptest
chown -R ftptest /home/ftproot/ftptest
使ftptest用户拥有这个目录的读写权限
chmod -R 775 /home/ftproot/ftptest
3、为ftptest用户设置密码
passwd ftptest
4、 配置
vi /etc/vsftpd/vsftpd.conf
修改第12行,禁止匿名登录
anonymous_enable=NO
第102行,去掉注释
chroot_list_enable=YES
第104行,去掉注释
chroot_list_file=/etc/vsftpd/chroot_list
chroot_list_enable=YES: 表示对用户访问进行限制
chroot_list_file=/etc/vsftpd/chroot_list 表示对chroot_list里面指定的用户进行限制
vsftpd服务器,一旦某个用户被限制访问了,那么默认情况下,该用户的写权限也被剥夺了。 这就导致ftp客户端连接上服务器之后无法上传文件。这个时候,就需要打开此用户的写权限。
vsftpd有两种端口:
一种是21端口,用来监听客户端连接请求的。 这个一般说来是固定的,就一直使用21端口。
一种是,一旦获取到请求之后,再专门用户服务端和客户端传输数据的端口。 (安装用的这种)
在vsftpd.conf的最后追加
pasv_enable=YES pasv_min_port=30000 pasv_max_port=30010
这表示使用被动模式,用于传输数据的端口分配从30000-30010之间
在vsftpd.conf的最后加上
需要同时设置allow_writeable_chroot,允许受限用户的写权限
reverse_lookup_enable参数可能会出现较大的延迟,默认是YES
allow_writeable_chroot=YES
reverse_lookup_enable=NO
添加账号到chroot_list里,一行一个用户账号
[root@localhost vsftpd]# vi /etc/vsftpd/chroot_list filesync
5、用户鉴权
因为用户 ftptest 是 nologin的,所以存在鉴权的问题。 如果鉴权问题不解决,就是永不停息的 530错误。。。
解决办法有如下两种:
1. 方式一:编辑/etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd
注释下面这一行
#auth required pam_shells.so
6、重启服务
systemctl restart vsftpd.service