CentOS-7.5-配置vsftpd-权限控制-添加管理虚拟用户

#服务器环境配置

#系统: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