1、安装所需软件
yum install vsftpd db4-utils
2、修改主配置文件/etc/vsftpd/vsftpd.conf,进行下述操作:
listen=YES
是否独立运行方式监听服务
anonymous_enable=NO
#禁止匿名用户访问
local_enable=YES
#允许本地用户访问
write_enable=NO
#默认不允许写入,在用户的配置文件中控制
local_umask=022
#本地用户创建文件掩码
dirmessage_enable=YES
#用户切换目录提示信息
xferlog_enable=YES
#启用xferlog日志
xferlog_std_format=YES
connect_from_port_20=YES
#允许服务器主动模式
chroot_local_user=YES
#不允许用户切换目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
user_config_dir=/etc/vsftpd/vsftpd_user_conf
#指定用户配置目录位置
pam_service_name=vsftpd
#PAM认证文件位置
userlist_enable=YES
#启用user_list文件列表
tcp_wrappers=YES
#启用tcp_wrappers主机访问
##以下配置是使用虚拟用户模式时需要添加的
guest_enable=YES
#启用用户映射功能
guest_username=virtualftp
#将映射用户指定为virtualftp
##以下设置根据需求自定
max_per_ip=5
#相同IP最多允许5个并发连接
max_clients=50
#同时允许50个客户端同时连接
3、设置虚拟用户的用户名和密码
vi /etc/vsftpd/vuser.txt
test1 #用户名
123456 #密码
test2
56789
4、将账号文件转化成数据库文件
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
5、更改用户账号密码的文件权限
chown 600 /etc/vsftpd/vuser.txt
chown 600 /etc/vsftpd/vuser.db
6、添加虚拟用户对应的系统账户
useradd -d /var/virtualftp -s /sbin/nologin virtualftp
7、将PAM认证样本文件复制到/etc/pam.d/vsftpd.vu 并修改
cp /usr/share/doc/vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd
改成
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
注:如果是64位系统的话应该是/lib64/
vsftpd默认的 /etc/pam.d/vsftpd不适合虚拟目录
8、设置需要限制的用户的独立权限
cd /etc/vsftpd/vsftpd_user_conf
vi test1
anon_umask=022 #设置用户创建文件的权限掩码
write_enable=YES #允许写入
anon_mkdir_write_enable=YES #允许创建文件夹
anon_upload_enable=YES #允许上传
anon_other_write_enable=YES #允许其它写入权限
anon_max_rate=102400 #设定最大下载带宽
local_root=/var/virtualftp/test1 #指定FTP根目录
9、创建用户目录
mkdir /var/virtualftp/test1
chown virtualftp /var/virtualftp/test1 更改/var/ftp/soft目录属主
10、启动服务
service vsftpd start 启动vsftpd服务
一个vsftpd.conf的样例
listen=YES
connect_from_port_20=YES
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
pam_service_name=vsftpd
tcp_wrappers=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
local_umask=022
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd |