[root@serv01 vsftpd]# cd/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS
[root@serv01 VIRTUAL_USERS]# ll
--第一步,创建真实用户larry并设定密码
[root@serv01 vsftpd]# useradd larry
[root@serv01 vsftpd]# passwd larry
--第二步,创建logins.txt文件,并添加内容如下
[root@serv01 ~]# vim logins.txt
[root@serv01 ~]# cat logins.txt
#注意:一行用户名,一行密码;交替使用
larry01
123456
larry02
123456
larry03
123456
larry04
123456
--第三步,创建login.db文件
[root@serv01 ~]# db_load -T -t hash -flogins.txt /etc/vsftpd/login.db
[root@serv01 ~]# cd /etc/vsftpd/
--第四步,修改权限
[root@serv01 vsftpd]# chmod 600 login.db
--第五步,创建PAM文件,加入如下内容(可以到/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/README文件复制),注意因为我使用的系统是
64位,所以需要把lib改成lib64,不然找不到这个模块文件
[root@serv01 vsftpd]# vim /etc/pam.d/ftp
[root@serv01 vsftpd]# cat /etc/pam.d/ftp
auth required /lib/security/pam_userdb.sodb=/etc/vsftpd/login
account required /lib/security/pam_userdb.sodb=/etc/vsftpd/login
[root@serv01 vsftpd]# ls/lib/security/pam_userdb.so
ls: cannot access/lib/security/pam_userdb.so: No such file or directory
[root@serv01 vsftpd]# vim /etc/pam.d/ftp
[root@serv01 vsftpd]# ls/lib64/security/pam_userdb.so
/lib64/security/pam_userdb.so
[root@serv01 vsftpd]# cat /etc/pam.d/ftp
auth required /lib64/security/pam_userdb.sodb=/etc/vsftpd/login
account required/lib64/security/pam_userdb.so db=/etc/vsftpd/login
--第六步,修改vsftpd.conf配置文件
[root@serv01 vsftpd]# vim vsftpd.conf
[root@serv01 vsftpd]# cat vsftpd.conf
listen=yes
anonymous_enable=no
local_enable=yes
pam_service_name=ftp
local_root=/share
write_enable=yes
local_max_rate=1024000
#max_clients=10
#max_per_ip=2
#userlist_enable=yes
#userlist_deny=yes
chroot_list_enable=yes
chroot_local_user=yes
chroot_list_file=/etc/vsftpd/chroot_list
user_config_dir=/etc/vsftpd/user_conf
guest_enable=yes
guest_username=larry
--第七步,重启服务
[root@serv01 vsftpd]# /etc/init.d/vsftpdrestart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd:[ OK ]
--第八步,测试,注意使用虚拟用户登录,比如larry01 larry02
[root@serv02 ~]# ftp 192.168.1.11
Connected to 192.168.1.11 (192.168.1.11).
220 (vsFTPd 2.2.2)
Name (192.168.1.11:root): larry01
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> exit
221 Goodbye.
[root@serv02 ~]# ftp 192.168.1.11
Connected to 192.168.1.11 (192.168.1.11).
220 (vsFTPd 2.2.2)
Name (192.168.1.11:root): larry02
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> exit
221 Goodbye.
--第九步,验证。可以发现up01和up02在真实系统中不存在
[root@serv01 vsftpd]# ip up01
Object "up01" is unknown, try"ip help".
[root@serv01 vsftpd]# ip larry01
Object "larry01" is unknown, try"ip help".
[root@serv01 vsftpd]# ip larry02
Object "larry02" is unknown, try"ip help".