VSFTP文件共享服务的虚拟用户模式是最为安全的一种模式,因为,普通用户可以使用系统内建的一些不可登陆普通用户映射出N个虚拟用户,即使普通用户被别有用心的人攻破,也会因为不可登陆而对系统保护,并且映射关系是通过pam数据库管理,从而进一步提高安全性。

那么,虚拟用户可能有N个,如果是一个两个还好说,如果有N个人需要使用,并且我们需要根据实际用户需求,配置不同的权限。亦或者某些用户需要停用,有些需要删除,新的用户需要建立,这种种情况要如何管理呢?

VSFTP的虚拟用户没有用户管理系统,只有pam可插拔式用户校验,它不像MySQL这些数据库有完整的用户系统,也就是管理用户的接口。

那么,vsftpd的用户接口其实就是pam的db文件。

该文件不可直接查看,需要使用db_dump 命令读取该文件。命令大体使用示例如下:

[root@centos1 vsftpd]# db_dump -d a user_list.db 
In-memory DB structure:
hash: 0x110000 (open called, read-only)
meta_pgno: 0
h_ffactor: 0
h_nelem: 2
h_hash: 0x7f48c417a8f0
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
page 0: hash metadata: LSN [0][1]: level 0
magic: 0x61561
version: 9
pagesize: 4096
type: 8
metaflags 0
keys: 0 records: 0
free list: 0
last_pgno: 2
flags: 0
uid: fa 28 2 2 0 fd 0 0 2 be 1 d4 ad 7 0 0 0 0 0 0
max_bucket: 1
high_mask: 0x1
low_mask: 0
ffactor: 0
nelem: 2
h_charkey: 0x5e688dd1
spare points:
1 (1) 1 (2) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0)
0 (0) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0)
0 (0) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0)
0 (0) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0)

page 1: hash: LSN [0][1]: level 0
prev: 0 next: 0 entries: 2 offset: 4085
[000] 4092 len: 3 data: 7a736b
[001] 4085 len: 6 data: 123456
page 2: hash: LSN [0][1]: level 0
prev: 0 next: 0 entries: 2 offset: 4082
[000] 4091 len: 4 data: john
[001] 4082 len: 8 data: 123456

可以看到该db数据库里有两个用户7a736b(zsk)和john,密码都是123456

未完待续