案例2:配置虚拟帐户
一、创建用于进行FTP认证的虚拟用户数据文件
[root@ftp ~]# cd /etc/vsftpd
[root@ftp vsftpd]# vim vitural-users
二、安装libdb-utils,用于生成虚拟用户认证文件
[root@ftp ~]# yum -y install libdb-utils
三、使用db_load命令用hash算法将原始的明文信息文件转换成数据库文件,并且降低数据库文件的权限(避免其他人看到数据库文件的内容),最后删除原始明文文件。
[root@ftp ~]# cd /etc/vsftpd
[root@ftp vsftpd]# db_load -T -t hash -f /etc/vsftpd/vitural-users /etc/vsftpd/vitural-users.db
[root@ftp vsftpd]# chmod 600 vitural-usres.db
[root@ftp vsftpd]# rm –rf vitural-users
四、查看vitural-users.db数据库
[root@ftp ~]# cat /etc/vsftpd/vitural-users.db
五、编辑 /etc/pam.d/vsftpd文件,注释掉原来所有的,然后添加这二行
auth required pam_userdb.so db=/etc/vsftpd/vitural-users
account required pam_userdb.so db=/etc/vsftpd/vitural-users
六、创建用于“虚拟用户”存储文件的根目录(注1)以及虚拟用户映射的系统本地用户(注2),所有虚拟用户都会映射到此用户后对文件系统进行操作。
注1:当虚拟用户登录FTP服务器后所访问的默认位置
注2:虚拟用户在系统中并不存在。所以需要创建一个可以映射到虚拟用户的系统本地用户,虚拟用户创建的文件的属性也都归属此系统本地用户。
[root@ftp ~]# mkdir –p /vftproot/admin
[root@ftp ~]# useradd -d /vftproot -s /sbin/nologin virftp
[root@ftp ~]# chown -R virftp:virftp /vftproot
七、修改配置文件
八、配置虚拟用户的权限,要求:hr1可以上传、创建目录和修改;act1不可以上传、创建目录和修改;egn1可以上传和创建目录,不可以修改。
- 创建用于存放虚拟用户权限配置的目录
[root@ftp ~]# mkdir /etc/vsftpd/vusers_dir
- 配置虚拟用户hr1权限
[root@ftp ~]# cd /etc/vsftpd/vusers_dir
[root@ftp vusers_dir]# vim hr1
- 配置虚拟用户act1权限
[root@ftp ~]# cd /etc/vsftpd/vusers_dir
[root@ftp vusers_dir]# vim act1
不做任何配置
- 配置虚拟用户eng1权限
[root@ftp ~]# cd /etc/vsftpd/vusers_dir
[root@ftp vusers_dir]# vim eng1
九、重启vsftpd服务
[root@ftp ~]# systemctl restart vsftpd
十、客户端访问测试
hr1可以上传、下载、创建目录和重命名,也可以删除目录或文件。
eng1可以下载、上传,创建目录,但不能重命名或删除文件
act1只可以下载和查看。不能上传、创建目录、重命名或删除目录或文件