一、 安装vsftpd-2.3.4 和 pam-devel (没有这个包,pam就不能认证虚拟用户,必须编译前安装)

tar -xzf vsftpd2.3.4.tar.gz

make

make install           

二、 安装完成后,把vsftpd  vsftpd.conf 分别拷贝到 /usr/local/sbin  /etc 目录里,可以先用anonymous登陆测试下是否可以登陆。 /usr/local/sbin/vsftpd  /etc/vsftpd.conf

三、 创建虚拟用户

 vim /etc/account.txt

 zhao                        虚拟用户

redhat                      密码

 chmod 600 /etc/account.txt

四、生成虚拟用户的数据库

db_load -T -t hash -f /etc/account.txt /etc/account.db

db_load命令 需要安装db4-util 工具

chmod 600 /etc/account.db

五、 编辑/etc/pam.d/vsftpd.vu

auth required /lib64/security/pam_userdb.so  db=/etc/account    
account required /lib64/security/pam_userdb.so db=/etc/account

指定刚才生成的account文件及数据库,没有后缀。如果是32位系统,要把/lib64改为/lib

六、 编辑配置文件

vim /etc/vsftpd.conf

local_enable=YES                     开启本地登录

write_enable=YES                     开启写权限,如果此权限不开,anon_mkdir_write_enable设置会无效
guest_enable=yes                       开启虚拟用户
guest_username=ftpuser             指定虚拟用户映射的本地用户
pam_service_name=vsftpd.vu     pam认证的文件名
user_config_dir=/etc/ftp/user_config_dir        针对不同虚拟用户设置不同的权限
 

七、创建本地用户ftpuser

useradd -d /data/stream ftpuser -s /sbin/nologin

chown ftpuser.ftpuser /data/stream    更改目录所属者,否则不能创建文件等

八、设置虚拟用户的权限,在/etc/ftp/user_config_dir创建跟虚拟用户名字一样的文件

cd /etc/ftp/user_config_dir

vim zhao

  write_enable=YES
anon_world_readable_only=NO             是否禁止浏览目录,默认是

anon_upload_enable=YES                      是否允许上传文件及文件夹

anon_mkdir_write_enable=YES              是否允许创建文件夹,但不能阻止用户上传文件夹

anon_other_write_enable=YES               是否允许用户修改,删除文件和文件夹

local_root=/data/stream                           主目录

     

九、

#kill掉进程

#重启服务即可

/usr/local/sbin/vsftpd /etc/vsftpd &