1、建立虚拟用户口令库文件 

   口令库文件中奇数行设置用户名,偶数行设置口令 

# vi /etc/vsftpd/ftpuser.txt

ftpaaa

123456

ftpbbb

123456


2、生成vsftpd的认证文件 

安装名叫“db4-utils-...”的包

# db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/ftplogin.db 

    注:如果没有db_load命令,请安装db4-utils-*相关rpm包。 

   设置认证文件只对用户可读可写 

# chmod 600 /etc/vsftpd/ftplogin.db 


3、建立虚拟用户所需的PAM配置文件 

# vi /etc/pam.d/vsftpd.vu 

auth required /lib64/security/pam_userdb.so  db=/etc/vsftpd/ftplogin

account required  /lib64/security/pam_userdb.so db=/etc/vsftpd/ftplogin

   注意:以上2行中最后的2个文件名ftplogin和第2个步骤中的数据库名字必须一致! 

             以上是64位系统使用

32位系统如下:

vi /etc/pam.d/vsftpd.vu 

auth sufficient /lib/security/pam_userdb.so  db=/etc/vsftpd/ftplogin

account sufficient  /lib/security/pam_userdb.so db=/etc/vsftpd/ftplogin


4、建立虚拟用户所要访问的目录并设置相应权限 

# useradd -d /home/ftpsite virtual(用户名,可以改为其他名) 

# chmod 700 /home/ftpsite/ 


经过该步骤的设置,/home/ftpsite就是virtual用户的主目录,该用户也是ftpsite目录的拥有者。除root用户之外,只有该用户具有对该目录的读、写和执行的权限。


5、设置vsftpd.conf配置文件 

guest_enable=YES 默认配置没有这行

guest_username=virtual 默认配置没有这行

pam_service_name=vsftpd.vu 默认是vsftpd

virtual_use_local_privs=YES        设定虚拟用户的权限符合他们的宿主用户

chroot_local_user=YES 禁止本地用户登出自己的FTP主目录

其他默认配置根据自己的需求来修改


6、设置主配置文件 

在vsftpd.conf文件中添加用户配置文件目录设置 

user_config_dir=/etc/vsftpd_user_conf 

增加上行的作用是:对各个用户的权限进行设置,然后在用户配置文件目录下创建相应的用户配置文件,比如为上述名为ftpaaa的用户创建一个配置文件

#vi /etc/vsftpd_user_conf/ftpaaa

anon_world_readable_only=NO   可读可下载 

anon_upload_enable=YES            可上传  

anon_mkdir_write_enable=YES   可创建和删除文件夹

anon_other_write_enable=YES    可文件改名和删除文件 

local_root=/home/ftpsite/ftpaaa      指定ftpaaa的宿主目录(所有用户默认都是登录到/home/ftpsite,指定后则登录到指定的目录中)


同样为ftpbbb用户创建一个配置文件

vi /etc/vsftpd_user_conf/ftpaaa


注意:用户配置文件名称与用户名相同


7、创建用户的指定登录目录(如果没有配置local_root,则不用创建,因为默认登录到/home/ftpsite)

mkdir /home/ftpsite/ftpaaa

chown virtual:virtual /home/ftpsite/ftpaaa

chmod 700 /home/ftpsite/ftpaaa


8、启到vsftpd服务

service vsftpd start