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

 

10-02 04:13