ftp权限控制:任意用户均可上传或者下载文件,或者只允许特定用户仅下载文件或者仅上传文件
安装vsftpd软件包
yum install -y vsftpd
创建共享目录share
修改ftp配置文件:
创建用户密码列表文件,文件不要有空格
vim /etc/vsftpd/vusers.list
用户1
用户1密码
用户2
用户2密码
用户3
用户3密码
创建虚拟账号数据库
db_load -T -t hash -f vusers.list vusers.db
查看数据库信息:
file vusers.db
vusers.db: Berkeley DB (Hash, version 9, native byte-order)
在服务器上添加虚拟账号映射账号(此账号为ftp服务器上真实存在的,为了安全此用*户一般设置为不可登录)
useradd -s /sbin/nologin ftpadmin
passwd ftpadmin
mkdir -p /etc/vsftpd/config #创建虚拟用户配置文件存放目录
增加pam认证
vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
修改ftp配置文件vsftpd.conf
anonymous_enable=NO(关闭匿名用户功能)
local_enable=YES 本地用户功能开启
write_enable=YES 本地用户写权限
local_umask=022
anon_umask=022
chroot_local_user=YES限制用户在家目录中
local_root=/mnt/share 设置用户访问目录
userlist_deny=NO
allow_writeable_chroot=YES(centos6有时需要去掉此行,否则报错)
listen=YES
listen_ipv6=NO
guest_enable=YES(添加)开启虚拟用户功能
guest_username=ftpadmin 映射虚拟用户的本地账号
user_config_dir=/etc/vsftpd/config 虚拟用户的配置文件
pam_service_name=vsftpd.vu(修改为与前边对应的文件名)
实现每个虚拟用户不同跟目录,不同权限的管控
创建用户家目录,并创建虚拟用户的同名配置文件
cd /etc/vsftpd/config
touch ftpadmin01 ftpadmin02 ftpadmin03 #创建用户ftpadmin01 ftpadmin02 ftpadmin03的配置文件
mkdir -p /mnt/share/ftpadmin0{1..3} #创建3个用户的上传目录
chown ftpadmin:ftpadmin /mnt/share/ftpadmin01
chown ftpadmin:ftpadmin /mnt/share/ftpadmin02
chown ftpadmin:ftpadmin /mnt/share/ftpadmin03
分别设置虚拟用户权限
设置ftpadmin01只有上传权限:
vim /etc/vsftpd/config/ftpadmin01
local_root=/mnt/share/ftpadmin01
write_enable=YES
download_enable=NO
anon_umask=022
anon_world_readable_only=NO(关闭只可读权限)
anon_upload_enable=YES(上传)
anon_mkdir_write_enable=YES(创建目录权限)
anon_other_write_enable=YES(其他写权限,改,删)(此行改为NO后,便没有了删除权限,其他权限不变)
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,RETR
设置ftpadmin02用户只有下载的权限
vim /etc/vsftpd/config/ftpadmin02
local_root=/mnt/share/ftpadmin02
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=NO
anon_other_write_enable=YES
设置ftpadmin03拥有所有权限:
vim /etc/vsftpd/config/ftpadmin03
local_root=/mnt/share/ftpadmin03
guest_enable=YES
guest_username=ftpadmin
anon_world_readable_only=NO
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_umask=022
download_enable=YES
启动服务:
systemctl start vsftpd