1.安装vsftpd软件和工具lftp
yum install vsftpd lftp
vim /etc/sysconfig/selinux
把SELINUX=enforing变为 SELINUX=disabled
2.安装ftp
yum install vsftpd.x86_64 lftp.x86_64 -y ##安装ftpd(s)和lftp(c)
systemctl start vsftpd ##开启vsftpd
systemctl enable vsftpd ##开机启动vsftpd
lftp ip ##测试
自己可以连接lftp,但是其他主机不可以,需要经过防火墙允许
firewall-config ##图形界面管理防火墙
Runtime ====> Permanent
选中public 下的ftp
选择Options下Reload Firewalld

3.本地访问权限
vim /etc/vsftpd/vsftpd.conf ##ftp配置文件
anonymous_enable=YES|NO ##匿名用户是否可以登陆
local_enable=YES|NO ##本地用户是否能够登陆
write_enable=YES|NO ##本地用户是否有写的权力
####注意:为了主机安全,lftp不会允许root用户访问。
4.vsftpd服务配置
4.1.匿名用户设定
匿名用户上传
vim /etc/vsftpd/vsftpd.conf ##更改ftpd配置文件
12 anonymous_enable=YES ##允许匿名用户登陆
29 anon_upload_enable=YES ##允许匿名用户上传
chgrp ftp /var/ftp/pub ##改变pub目录用户组
chmod 775 /var/ftp/pub ##给ftp用户组的读写权限
##注意,前三步设置是ftpd服务本身的设置。后两步是系统自身对此文件的权限设置。
匿名用户删除或者重命名
vim /etc/vsftpd/vsftpd.conf
anon_other_write_enable=YES ##开启允许删除和重命名,需要自己编写
允许匿名用户建立目录
33 anon_mkdir_write_enable=YES ##去掉注释,开启建立目录权力
开启下载权力
anon_world_readable_only=NO ##默认为YES,不能下载,改为NO后可以下 载,但不安全。
改变登陆的默认目录
anon_root=/directory
#改变上传或者建立目录的权限
anon_umask=022 ##将匿名用户的保留权限设为022
改变上传的所有人
52 chown_uploads=YES ##开启上传改变所有人功能
53 chown_username=we ##改变所有人为we
##需要注意的是,匿名用户的权限和改变上传的所有人不能同时存在。如果需要设置权限,则需要设置
chown_uploads_mode=0644 ##设置上传后的权限为0644
下载限速
anon_max_rate=xxxxxx ##设置下载最大速度,xxxxx为字节数,1k=1024字节,即 设为1024则就是1k/s。
最大客户端连接数
max_clients=x ##设置最多可以有x个用户同时连接
4.2.普通用户设置
#普通用户的上传文件权限和本地加目录的修改于匿名用户相同。将anon改为local。
限制本地用户浏览
chroot_local_user=YES ##将所有用户所定到自己的家目录中
chmod u-w /home/*
chroot_local_user=NO ##设立用户黑名单
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list ##将用户名写入黑名单中,用户将无法登陆
chroot_local_user=YES ##设立用户白名单
chroot_list_enable=YES
vim /etc/vsftpd/chroot_list ##该文件出现,所有用户无法登陆,只有出现在文件中的用户可以登陆。
5.建立虚拟用户
vim /etc/vsftpd/test
user1
123
user2
123
db_load -T -t hash -f test login.db
#转换 转换方式 哈希 文件
vim /etc/pam.d/virtual
auth required pam_userdb.so db=/etc/vsftpd/login(后缀不需要,系统会自动检测)
account required pam_userdb.so db=/etc/vsftpd/login
修改配置文件
pam_service_name=vsftpd
改为pam_service_name=login(读取用户列表文件)
添加
guest_enable=YES(开启虚拟用户访问)
guest_username=ftp(虚拟用户影射)
systemctl restart vsftpd
6.建立虚拟用户加目录
mkdir /virtual/user{1,2} -p
chmod u-w /virtual/user{1,2}
chown ftp.ftp /virtual/user{1,2}
vim /etc/vsftpd/vsftpd.conf
local_root=/virtual/$USER $USER意思为那个用户建立它就会给这位用户自动生成属于它自己的家目录
user_sub_token=$US