虚拟用户的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源,所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全
1.生成虚拟用户口令库文件。为了建立此口令库文件,先要生成一个文本文件。该文件的格式如下,单数行为用户名,偶数行为口令:
[root@localhost vsftpd]# vim vu.txt
aa
11
bb
11
2.
用户认证文件的生成需要安装额外的软件来实现,软件名为:db4-utils
[root@localhost Server]# rpm -ivh db4-4.3.29-10.el5.i386.rpm
生成口令库文件,并修改其权限:
[root@localhost vsftpd]# db_load -T -t hash -f vu.txt vu.db
[root@localhost vsftpd]# chmod 600 vu.db
3.新建一个虚拟用户的PAM文件。加上如下两行内容(原始代码先注释掉避免冲突):
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vu
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vu
4.FTP虚拟用户是需要一个系统用户(例如cc),这个用户不需要密码,也不需要登录,只提供一个登录目录.并且让这个目录对other用户拥有读写权限.
此时用户cc即使aa和bb的映射用户,登录后是cc的家目录
[root@localhost vsftpd]# useradd -s /sbin/nologin cc
[root@localhost vsftpd]# chmod o+rw /home/cc
5.修改vsftpd主配置文件,让系统支持虚拟用户
guest_enable=yes # guest_enable=YES表示启用虚拟用户
guest_username=cc #将虚拟用户映射为本地用户cc
6.进入cc家目录,创建cc.txt 方便测试 并修改权限
# chmod o+rw /home/cc
7.重启vsftpd 测试如下:
此时本地用登录不了ftp-serer