FTP实现上传、下载、删除的权限控制
需求:
需要两个角色,分别为
1、 管理员:有对文件的上传下载和删除操作
2、 普通用户:有对文件的上传和下载权限,没有删除权限
网上很多参考资料,用centos6和7各做了实验,其中centos6实现正常,但是7一直访问不了,经过反复实验和学习,发现7需要配置pam.d的认证密码配置。现在整理如下,做个备忘:
服务器环境:centos6.5
实现:
1、 安装
yum –y install vsftpd
2、 配置
创建虚拟用户的宿主用户
useradd -d /home/ftpdir virtual
chmod 700 /home/ftpdir
创建虚拟用户
vim/etc/vsftpd/vuser
admin
12345678
upload
12345678
download
12345678
设置密码数据库
db_load-T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db
chmod600 /etc/vsftpd_login.db
ftp配置文件新增如下字段
vim/etc/vsftpd/vsftpd.conf
guest_enable=YES #启用虚拟用户
guest_username=virtual#将虚拟用户映射为本地virtual用户
user_config_dir=/etc/vsftpd_user_conf#指定不同虚拟用户配置文件的存放路径
pam_service_name=vsftpd #指定PAM配置文件为在/etc/pam.d/下的vsftpd
保存退出
虚拟用户的配置文件
mkdir/etc/vsftpd_user_conf
vim/etc/vsftpd_user_conf/download
local_root=/home/ftpdir
anon_world_readable_only=NO #开放download用户的下载权限——只能下载;注意这个不地方不要写成YES,否则将不能列出文件和目录
vim/etc/vsftpd_user_conf/upload
local_root=/home/ftpdir
anon_world_readable_only=NO
write_enable=YES #增加写权限
anon_upload_enable=YES #增加上传权限
anon_mkdir_write_enable=YES #增加创建目录的权限
vim/etc/vsftpd_user_conf/admin
local_root=/home/ftpdir
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES #增加管理员用户的删除/重命名的权限
启动ftp
/etc/init.d/vsftpdstart
二、centos7
centos7上会出现虚拟用户登陆不上,作如下配置,其中红色为新增虚拟用户账号密码文件,蓝色部分注释掉
[root@localhost vsftpd_user_conf]# cat /etc/pam.d/vsftpd
#%PAM-1.0
auth required pam_userdb.sodb=/etc/vsftpd/vuser
account required pam_userdb.sodb=/etc/vsftpd/vuser
session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=usersense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
session required pam_loginuid.so
session include password-auth
重启vsftp
systemctl restart vsftpd