一、安装vsftpd
1、查看是否安装
rpm -qa | grep vsftpd
2、卸载安装
rpm -e xxx
yum -y install vsftpd
3、开机启动
chkconfig vsftpd on
4、查看服务状态
service vsftpd start 启动
service vsfptd status 状态
service vsftpd restart 重启
service vsftpd stop 停止
===>
systemctl stop vsftpd.service
systemctl start vsftpd.service
systemctl status vsftpd.service
===>
查看端口
netstat -tunlp
21端口已经被占用
5、查看文件
whereis vsftpd
ftpusers 黑名单,在这个文件里面的人都不能登录ftp
user_list 允许访问ftp的用户名单
vsftpd.conf 核心配置文件
vsftpd_conf_migrate.sh FTP服务
二、设置用户
在Linux中,不同用户是有不同目录访问权限的。
1、操作
创建用户并设置用户对于这个文件的权限
2、创建用户
useradd -d /ftp -g ftp -s /sbin/nologin ftptest
-
-d /ftp 表示指定该用户的家目录
-
-g ftp 表示该用户属于ftp分组 (ftp分组是内置的,本来就存在,不需要自己创建)
-
-s /sbin/nologin 表示这个用户不能用来登录secureCRT这样的客户端,这种不能登陆的用户又叫做虚拟用户
3、设置用户拥有这个目录权限
chown -R ftptest /ftp
4、设置目录权限
chmod -R 755 /ftp
5、设置密码
passwd ftptest
三、配置用户
创建完用户后,需要在vsftpd服务器中配置该用户
1、去掉匿名用户登录
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 修改为 anonymous_enable=NO
2、限制用户访问
vi /etc/vsftpd/vsftpd.conf
找到:
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list 或 #chroot_list_file=/etc/chroot_list
并修改为:
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
注:
chroot_list_enable=YES: 表示对用户访问进行限制
chroot_list_file=/etc/vsftpd/chroot_list 表示对chroot_list里面指定的用户进行限制
3、用户列表
在chroot_list中添加ftptest用户,首先通过vi命令打开chroot_list文件(此文件本来是空的|不存在):
vi /etc/vsftpd/chroot_list
然后增加一行:
ftptest
4、允许写入权限
vsftpd服务器,一旦某个用户被限制访问了,那么默认情况下,该用户的写权限也被剥夺了。 这就导致ftp客户端连接上服务器之后无法上传文件。这个时候,就需要打开此用户的写权限,请按照如下办法操作:
首先通过vi命令打开ftp服务器配置文件:
vi /etc/vsftpd/vsftpd.conf
在最后面新加一行:allow_writeable_chroot=YES
四、用户鉴权
因为用户 ftptest 是 nologin的,所以存在鉴权的问题。 如果鉴权问题不解决,就是永不停息的 530错误。。。
解决办法有如下两种:
方式一: /etc/pam.d/vsftpd 文件
vi /etc/pam.d/vsftpd 注释掉/etc/pam.d/vsftpd文件里这一行:#auth required pam_shells.so 这样不去鉴权,从而允许 ftptest 这种 nologin用户登录 ftp 服务器.
方式二:shells 文件
vi /etc/shells
在/etc/shells文件里面增加一行:/sbin/nologin 这样允许不能登录系统的用户通过鉴权
五、重启服务
systemctl restart vsftpd.service
===>
service vsftpd status
systemctl status vsftpd.service
六、测试
windows
# 打开cmd
ftp 101.34.182.36
用户(101.34.182.36:(none)): ftptest
常用命令
#查看路径
pwd
"/"
# 查看文件
ls
# 切换目录
cd rsas
# 上传文件
put xxx.md
# 退出ftp
bye