1.需要建立一个用户,这个用户是linux系统的本地用户,各ftp帐号使用它和vsftpd的配合间接存取服务器文件。
#groupadd virtual
#useradd -g virtual vuser
2.建立ftp用户帐号列表子文件logins.txt
anvycn
test0
dym529
test1
admin
test2
用户名和密码依次隔开
#db_load -T -t hash -f ./logins.txt ./vsftpd_login.db
无论你在什么地方执行的,无论你的文件生成在哪里,请记住你vsftpd_login.db的地址,另外建议删除logins.txt
3.建立vsftpd的pam_service文件,注意这里的db=path
#vi /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
:qw保存
4.设置用户权限
建立用来存放用户权限设置文件的目录
#mkdir /etc/vfstpd/virtual
并在该文件夹下依次建立与logins.txt对应的帐号名称相同的文件
如:
[anvycn]仅仅允许下载
anon_world_readable_only=NO
local_root=/usr/local/apache/htdocs/anvy_test/
[dym529]允许建立,修改,但是不允许删除
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
local_root=/usr/local/apache/htdocs/dym_test/
[admin]全部权限
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/usr/local/apache/htdocs/
5.设置vsftpd.conf
#cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
#vi /etc/vsftpd/vsftpd.conf
修改内容如下
listen=YES
#listen_port=10021
connect_from_port_20=YES
ftpd_banner=Welcome to virtual FTP service.
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=vuser
pasv_min_port=30000
pasv_max_port=30999
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/virtual
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
hide_file=.*
[esc]
:qw
6.重新启动vsftpd
#/sbin/service vsftpd restart
反复2次,确认shutdown和start都是OK,如有错误,反复检查以上步骤
7.如有用户出现不能登入,目录意外拒绝现象,请检查目录是否存在,pam.d/vsftpd.vu是否无误,重要的是
#ls -l 你的ftp根目录查看owner是否属于 vuser:virtual,如果不是
#chown -R vuser:virtaul 你的ftp根目录
8.日常维护
壹。#db_load -T -t hash -f ./logins.txt ./vsftpd_login.db 更新帐号
贰。更新vsftpd/virtual/下对应的权限
叁。/sbin/service vsftpd restart