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