#服务器环境配置
#系统:windows 10
#虚拟主机服务器:CentOS 7.5
#服务器ip:192.168.122.144
#要求:
#把第二块硬盘挂载到/data目录。
#虚拟用户adminftp为ftp管理员,可以对目录/data目录可以拥有全部权限。
#虚拟用户net1703可以下载、上传,不可重命名和删除,登录目录为指定目录/data/net1703。
#虚拟用户net1701可以下载、上传,不可重命名和删除,登录目录为指定目录/data/net1701。
#匿名用户可以下载 、不能上传,只能访问匿名目录/data/ftp。
#对不同的本地用户实施不同的配置,并且只能访问系统设定的目录,所有用户不能切换到其它目录
#安装的服务:FTP vsftp
#服务器操作
#关闭selinux操作的
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
#配置基础信息 安装启动
yum install vsftpd
systemctl start vsftpd
systemctl enable vsftpd
#开启端口
firewall-cmd --add-service=ftp
firewall-cmd --add-service=ftp --permanent
#配置文件内容信息
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
tcp_wrappers=YES
allow_writeable_chroot=YES
anon_root=/data/ftp
no_anon_password=YES
userlist_enable=NO
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
hide_ids=YES
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/data/$USER
user_config_dir=/etc/vsftpd/user_conf/
#配置虚拟用户
touch /etc/vsftpd/chroot_list
#配置虚拟用户的账号密码
vim /etc/vsftpd/virt_user
net1701
123123
net1703
123123
adminftp
123123
#生成账号密码命令
db_load -T -t hash -f /etc/vsftpd/virt_user /etc/vsftpd/users.db
#pam密码认证文件信息
vim /etc/pam.d/vsftpd
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/users
account required pam_userdb.so db=/etc/vsftpd/users
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#用户权限控制
mkdir -p /etc/vsftpd/user_conf/
vim /etc/vsftpd/user_conf/net1701
write_enable=YES
chown_uploads=YES
download_enable=YES
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
vim /etc/vsftpd/user_conf/net1703
write_enable=YES
chown_uploads=YES
download_enable=YES
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
vim /etc/vsftpd/user_conf/adminftp
write_enable=YES
chown_uploads=YES
download_enable=YES
local_root=/data/
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,RETR,DELE,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
#用户对应的目录
mkdir -p /data/ftp /data/net1701 /data/net1703
chown -R ftp:ftp /data
find /data/ -type d | xargs chmod a+w
chmod 700 /data/ftp
systemctl restart vsftpd