VSFTPD的虚拟账号

Vsftpd支持登录的账号

1、匿名账号

2、本地账号

3、虚拟账号 (简单的说,就是可以用此账号访问我的FTP服务器,但是此账号在服务器本地根本不存在。)所以比较安全

下面就是虚拟账号的实现过程。

1、新建一个虚拟账号文件v_user.txt (一行一个账号、和一个密码)

touch /etc/vsftpd/v_user.txt

admin

123456

test

123456

2、安装db_load (即 db4_utils)工具 是一个数据转换工具

rpm -ivh db4-utils-4.3.29-9.fc6.i386.rpm

v_user.txt 转换成v_user.db数据库文件

db_load -T - t hash   -f   v_user.txt  v_user.db

chmod  600  v_user.db  安全期限更改权限 ,并删掉v_user.txt文件

3、修改pam文件(位置/etc/pam.d/vsftpd)如下:

(auth 是账号是否存在  required 必须验证通过       db= 虚拟账号所在的位置

Account  是验证账号是否过期

pam_userdb.so 所在的目录为 /lib/security/)

4、编辑配置文件vsftpd.conf 添加如下两句

guest_enable=YES  (开启虚拟账号的映射)

guest_username=user5  (将虚拟账号映射到本地系统的user5

pam_service_name=vsftpd (默认已开启)

useradd  -s /sbin/nologin  user5  添加本地账号user5

chmod  705  user5 

重启vsftpd服务  ok !!!!

如果你还想上传、下载及建立文件夹的话则必须打开以下两行

anon_mkdir_write_enable=YES

anon_upload_enable=YES

anon_umask=073

还有一种方法

首先编辑vsftpd.conf添加

user_config_dir = /etc/vsftpd/vuser  这一行

其中/etc/vsftpd/vuser  就是存放虚拟账号的目录(mkdir  /etc/vsftpd/vuser),在这里建立以v_user.db里的账号为文件名的文件。如 touch  admin

然后编辑 /etc/vsftpfd/vuser/admin 添加

guest_enable=YES:开启虚拟帐号登录 
guest_username=user5设置ftp对应的系统帐号为user5
anon_world_readable_only=NO:允许匿名用户浏览器整个服务器的文件系统 
write_enable=YES:允许在文件系统写入权限 
anon_mkdir_write_enable=YES:允许创建文件夹 
anon_upload_enable=YES:开启匿名帐号的上传功能 
anon_max_rate=100000:限定传输速度为100KB/s 

最后保存,退出。

重启vsftpd  这样admin用户就比test用户多了一个创建文件夹的权限。 

User_config_dir可以对单个用户进行限制,很强大。。。感兴趣的可以试试