分类: LINUX
2011-06-27 17:23:33
FTP虚拟账户的创建(1)
一个系统的本地账户当然是越少越好,可有的时候偏偏需要很多账户来提供给用户使用,就比如这个FTP服务,这个时候虚拟账户就能很好的排上用场了,它只需要一个系统账户即可蓄念n个FTP账号;
我们使用的环境是:Centos5.5
首先我们需要一个虚拟账户的账户信息文件,格式如下:
User1 //账户名
123 //密码
User2
123
User3
123
……
上面为账户,下面为密码
创建好账户文件后我们就需要把它制作成数据库文件了,我们使用的工具db4-utils,次软件在系统光盘包里面自带,直接安装即可:
[root@linux CentOS]# rpm -ivh db4-utils-4.3.29-10.el5.i386.rpm
为了方便管理,我们把生产的数据库文件放在vsftpd的配置目录下:
/etc/vsftpd
开始生成数据库文件:
在这目录下创建账户信息文本文件
[root@linux vsftpd]# vim user.txt
user1
123
user2
123
user3
123
(我们创建了3个账户)
[root@linux vsftpd]# db_load -T -t hash -f user.txt user.db //生成数据库文件
此时在目录下多了一个user.db的文件,这就是生成的数据库文件;接下来就开始修改vsftpd的主配置文件让它支持虚拟账户:在配置文件末尾增加如下三行
pam_service_name=vsftpd //如果认证方式不是vsftpd需要修改过来
guest_enable=YES //启用guest账户(就是让FTP支持虚拟用户)
guest_username=chenxiang //蓄念用户为“chenxiang”
创建一个系统账户用来支持虚拟账户
[root@linux vsftpd]# useradd -s /sbin/nologin chenxiang
接下来创建认证配置文件
为了安全起见,把原来的pam文件备份一份,然后开始修改
[root@linux vsftpd]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
# vim /etc/pam.d/vsftpd
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/user
account required /lib/security/pam_userdb.so db=/etc/vsftpd/user
(注: db=/etc/vsftpd/user后面指定的模块名不能使用生成的user.db,直接用文件名user即可)
[root@linux vsftpd]# /etc/init.d/vsftpd restart
关闭 vsftpd: [确定]
为 vsftpd 启动 vsftpd: [确定]
重启FTP就可以了,赶紧试试吧
[root@linux vsftpd]# lftp user1@192.168.1.4
口令:
lftp user1@192.168.1.4:~> ls
已经能成功登入了
(未完,请看后续)
随梦奔跑
2011年6月27日
交流群:18731199