Vsftpd 虚拟用户实现公司各部门文件的上传下载

做了好久的实验,网上的好些文章都是或多或少没说明白问题。这里把我的实验过程记下来,可能也会帮助到一些朋友。

情况:

开发、美工、运维组都有相关的资料需要更新、保存(上传、下载、删除、建立目录等),且各个组相互不能进入其他的资料区,看同事们也喜欢用ftp工具,就用linux下的vsftpd搭建服务吧。考虑到安全问题,采用虚拟用户登录。

规划:

开发组:develop

美工组:design

运维组:operate

ip地址:192.168.1.105

用户名也暂且这样定吧,密码和用户名相同

好了,开始:

一、准备

1、安装vsftpd软件:

[root@client ~]# yum install vsftpd –y

2、采用的是pam验证模块,所以得安装相关软件

[root@client ~]# yum install pam –y

3、采用文本帐号,生成相应数据库文件,得有db4包支持

[root@client ~]# yum install db4 db4-devel db4-utils –y

4、建立账户文件(/etc/vsftpd/vsftpd_login.txt)

[root@client ~]# vim /etc/vsftpd/vsftpd_login.txt

[root@client ~]# cat /etc/vsftpd/vsftpd_login.txt

Vsftpd 虚拟用户实现公司各部门文件的上传下载

5、将文本文件内容加载到数据库

[root@client ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login.txt /etc/vsftpd/vsftpd_login.db

-T选项允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用-T。

-t用来指定转译载入的数据库类型。可以指定的数据类型有Btree、Hash、Queue和Recon数据库。这里选择Hash。

Vsftpd 虚拟用户实现公司各部门文件的上传下载

查看一下生成的db文件:

[root@client ~]# ll /etc/vsftpd/vsftpd_login*

Vsftpd 虚拟用户实现公司各部门文件的上传下载

6、设定验证文件,指定验证模块和需要验证的db文件

[root@client ~]# vim /etc/pam.d/vsftpd

只需要添加下面两行,其他的注释掉吧

Vsftpd 虚拟用户实现公司各部门文件的上传下载