一、创建虚拟用户数据库
db_load 工具: 将明文密码文件 ( 奇数行是用户名,偶数行是密码 ) 转换 为数据库文件
db_load工具:通过安装 db4-utils 软件包获得
[root@localhost vsftpd]# yum -y install db4-utils
创建数据库文件
[root@localhost vsftpd]# vim /etc/vsftpd/vlogin # 创建 明文密码文件
[root@localhost vsftpd]# cat /etc/vsftpd/vlogin # 明文密码文件 内容如下
tomcat # 奇数行是用户名
123456 # 偶数行是密码
jerry
654321
[root@localhost vsftpd]# db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db # 转换
[root@localhost vsftpd]# chmod 600 /etc/vsftpd/{vlogin,vlogin.db} # 处于安全考虑设置一下权限
[root@localhost vsftpd]#
二、创建 PAM 文件,设置基于虚拟账户验证
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.pam # 虚拟账户验证文件
[root@localhost vsftpd]# cat /etc/pam.d/vsftpd.pam
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin # db 指定数据库文件, 无须 .db的名称后缀
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
[root@localhost vsftpd]#
三、设置虚拟账户共享目录
[root@localhost vsftpd]# useradd -s /sbin/nologin -d /home/ftp/ virtual
四、修改主配置文件
[root@localhost vsftpd]# vim vsftpd.conf
chroot_local_user=YES # 禁锢用户主目录
guest_enable=YES # 开启虚拟账户功能
guest_username=virtual # 所有虚拟账户都映射到 guest_username 指定的系统账户上
pam_service_name=vsftpd.pam
user_config_dir=/etc/vsftpd_user_conf # 配置一个基于账户的配置目录,里面是若干个账户
user_sub_token=$USER
五、为每一个用户设置独立的共享路径
[root@localhost vsftpd]# mkdir /etc/vsftpd_user_conf/ # 创建基于账号配置目录
[root@localhost vsftpd]# mkdir -p /home/ftp/tomcat # tomcat 用户共享主目录
[root@localhost vsftpd]# vim /etc/vsftpd_user_conf/tomcat # tomcat 用户 配置信息
local_root=/home/ftp/$USER # 设置tomcat ftp的家目录, 此外还可以设置 权限, 限速,并发量等