####vsftpd服务#####
1.什么是ftp
FTP是File Transfer Protocol.简称文件传输协议。用于Internet上的控制文件的双向传输,同时也是一个应用程序。
2.安装ftp
yum install vsftpd -y        ##安装vsftpd
systemctl start vsftpd       ##开启vsftpd服务
systemctl stop firewalld.service  ##关闭火墙
systemctl enable vsftpd           ##开机自启
setenforce 0                      ##将selinux改为警告模式
1)匿名用户设定
vim /etc/vsftpd/vsftpd.conf       ##编辑配置文件
anonymous_enable=YES              ##允许匿名用户登陆
local_enable=YES|NO               ##允许本地用户登陆(不)
write_enable=YES|NO               ##限制(不)本地用户读写
local_umask=022                   ##本地用户权限阀值
anon_upload_enable=YES            ##允许匿名用户上传
systemctl restart vsftpd.service  ##重启服务
chgrp ftp /var/ftp/pub           
chmod 775 /var/ftp/pub            ##改权限
vim /etc/vsftpd/vsftpd.conf       ##编辑配置文件
anon_upload_enable=YES            ##允许匿名用户上传
anon_mkdir_write_enable=YES       ##允许匿名用户建立目录
anon_other_write_enable=YES|NO   ##限制匿名用户删除

chown_uploads=YES                 ##匿名用户使用的用户身份修改
chown_username=student

anon_max_rate=102400              ##最大上传速率
max_clients=2                     ##最大链接数


anon_world_readable_only=NO       ##设定参数值为no表示匿名用户可以下载
systemctl restart vsftpd.service  ##重启服务

2)本地用户设定
local_enable=YES|NO  ##本地用户登陆限制
write_enable=YES|NO  ##本地用户写权限限制

local_root=/directory           ##本地用户家目录修改            

local_umask=xxx                 ##本地用户上传文件权限

(1)<限制本地用户浏览/目录>
所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*

用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list


用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

(2)<限制本地用户登陆>
vim /etc/vsftpd/ftpusers  ##用户黑名单
vim /etc/vsftpd/user_list  ##用户临时黑名单

用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list   ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp


##ftp虚拟用户的设定
创建虚拟帐号身份)
vim /etc/vsftpd/userfile ##文件名称任意
ftpuser1
abc
ftpuser2
abc
ftpuser3
abc

db_load -T -t hash -f /etc/vsftpd/userfile userfile.db

vim /etc/pam.d/westos  ##文件名称任意
account  required pam_userdb.so db=/etc/vsftpd/userfile
auth  required pam_userdb.so db=/etc/vsftpd/userfile

vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos
guest_enable=YES

虚拟帐号身份指定)
guest_username=ftpuser
chmod u-w /home/ftpuser

虚拟帐号家目录独立设定)
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER
user_sub_token=$USER