1、yum安装vsftpd程序:
[root@NcBank01 other]# yum install vsftpd -y
2、修改配置文件
[root@NcBank01 other]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
//是否允许anonymous登录FTP服务器,默认是允许的。
local_enable=YES
//是否允许本地用户登录FTP服务器,默认是允许
write_enable=YES
//是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许
anon_umask=022
//设置虚拟用户的文件生成掩码为022,默认是077
dirmessage_enable=YES
//激活目录信息,当远程用户更改目录时,将出现提示信息
xferlog_enable=YES
//启用上传和下载日志功能
connect_from_port_20=YES
//启用FTP数据端口的连接请求
xferlog_file=/var/log/vsftpd.log
//设置日志文件的文件名和存储路径,这是默认的
xferlog_std_format=YES
//是否使用标准的ftpd xferlog日志文件格式
listen=YES
//使vsftpd 处于独立启动模式
user_config_dir=/etc/vsftpd/vuser_dir
//使用虚拟用户配置文件的目录
pam_service_name=/etc/pam.d/vsftpd
//设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.
userlist_enable=NO
//用户列表中的用户是否允许登录FTP服务器,默认是不允许
chroot_list_enable=YES
//如果希望用户登录后不能切换到自己目录以外的其它目录,需要设置该项
tcp_wrappers=YES
//使用tcp_wrqppers作为主机访问控制方式
guest_enable=YES
//是否启用来宾用户(也就是启用虚拟用户)
guest_username=root
//如果启用了虚拟用户后上传文件修改文件的用户名
chown_uploads=YES
//是否启用上传文件后修改为指定的属主
chown_username=root
//是否启用上传文件后修改为指定的属主用户
3、在/etc/vsftpd/下创建两个目录
vuser_db #后续存放虚拟用户的配置文件
vuser_dir #存放虚拟用户的认证文件
//以下是login_vuser虚拟用户的帐号密码格式,奇数行为用户名,双数行为密码
user003
20150105
user004
20150106
user005
20150107
//生成数据库文件
//选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。
如果指定了选项-T,那么一定要追跟子选项-t
子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。扩展介绍下,-t可以指定的数据类型有Btree、Hash、Queue和Recon数据库。
-f:参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码
[root@master vuser_db]# db_load -T -t hash -f /etc/vsftpd/vuser_db/login_vuser /etc/vsftpd/vuser_db/vuser.db
4、更改pam认证模块
[root@master vuser_db]# cd /etc/pam.d/
[root@master vuser_db]# vim vsftpd //这个文件名要与主配置文件中的pam_service_name指定的一致
//最后面的vuser就是vuser.db,但是这里的后缀不是需要写的
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser
5、为虚拟用户创建对应的文件vi
[root@master vsftpd]# cd /etc/vsftpd/vuser_dir/
[root@master vuser_dir]# ll //login_vuser中有多少个帐号就创建多少个虚拟用户文件
total 6
-rw-r--r--. 1 root root 177 Jan 5 17:03 user003
-rw-r--r--. 1 root root 177 Jan 5 17:09 user004
-rw-r--r--. 1 root root 177 Jan 5 17:19 user005
[root@master vuser_dir]# vim user003
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/www/test //指定虚拟用户有权限登录到哪个目录
chown_upload_mode=0777 //虚拟用户上传文件的权限设置
到这里基本上算是配置完成了,可以启动vsftpd服务了:
root@master vsftpd]# service vsftpd start
6添加新的虚拟用户
[root@NcBank01 vsftpd]# vi adduser.txt
账号
密码
db_load -T -t hash -f adduser.txt addftpuser.bdb
db_dump addftpuser.bdb > addftpuser.txt
db_dump vuser.db > vuser.db.txt
然后打开Mobileusers.txt 和 addftpuser.txt
格式类似:
VERSION=3 #版本
format=bytevalue #本文格式
type=hash #加密方式
h_nelem=2 #文件内含用户的数量
db_pagesize=4096
HEADER=END #头属性结束
6674707573657231 #第一个用户的用户名
313233343536 #第一个用户的密码
6674707573657232 #第二个用户的用户名
313233343536 #第二个用户的密码
DATA=END #数据属性结束
将addftpuser.txt中的内容相应的加入到Mobileusers.txt 中并且修改文件内用户的数量
之后在使用db_load回复pam的配置文件。
(执行操作之前一定要做备份)
db_load -f vuser.db.txt vuser.db
[root@NcBank01 vsftpd]# ll /etc/vsftpd/vuser_dir/
total 8
-rw-r--r-- 1 root root 173 May 6 11:26 user003
-rw-r--r-- 1 root root 173 May 23 11:19 user004
创建虚拟文件给与权限
重启vsftp即可
原文地址:http://10865275.blog.51cto.com/10855275/1907257