3. 虚拟用户模式
修改配置文件
vi /etc/vsftpd/vsftpd.conf
要修改的内容如下(红色字体为解释,不要写入配置文件)
listen=yes
anonymous_enable=no
dirmessage_enable=yes
xferlog_enable=yes
xferlog_file=/var/log/vsftpd.log
chroot_local_user=yes
guest_enable=yes
guest_username=virtual
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
local_enable=yes
guest_enable=yes
guest_username=virtual
创建虚拟用户列表
在/etc/vsftpd文件夹下,创建loguser.txt 文件
vi /etc/vsftpd/loguser.txt
内容就是你准备好的用户名和密码,一行用户名,下行密码。然后再重复,这样:
username1
password1
username2
password2
username3
password3
...
生成数据库
虚拟用户模式,是需要linux系统采用“数据库”的方式,来保存帐号信息的。我们这里用的是“db“这个数据库软件包,或许你的系统没有这个包,先安装上就是了
debian或Ubuntu:
sudo apt-get install db-util
Redat,Fedoar或Centos:
yum install db*
安装完成后,在/etc/vsftpd 文件夹下
cd /etc/vsftpd
输入:
db_load -T -t hash -f loguser.txt /etc/vsftpd_login.db
设置下创建出来的数据库文件的权限
chmod 600 /etc/vsftpd_login.db
创建虚拟用户文件夹,并修改文件夹权限
mk /home/ftp/username1
mk /home/ftp/username2
mk /home/ftp/username3
...
有几个虚拟用户就要创建几个文件夹并修改权限
chmod757 username1
chmod757 username2
chmod757 username3
...
为虚拟用户创建一个本地用户
新建一个系统用户virtual,不用设置用户的密码。用户家目录为/home/ftp,
用户登录终端设为/bin/false(即使之不能登录系统) ,命令2条:
useradd virtual -d /home/ftp -s /bin/false
chown virtual:virtual /home/ftp
注:
如果第2条命令,说没有找到 virtual 组,就自己新建这个组
设置虚拟用户权限
和本地用户模式的方法一样
建/etc/vsftpd/vsftpd_user_conf 文件夹
mkdir /etc/vsftpd/vsftpd_user_conf
每个用户都要单独创建然后在里面写上具体的,单独的,只针对这个用户,他所拥有的权限,比如:
创建username1
vi /etc/vsftpd/vsftpd_user_conf/username1
write_enable=YES
local_root=/home/ftp/username1
创建username2
vi /etc/vsftpd/vsftpd_user_conf/username2
Anon_world_readable_Only=no
Write_enable=yes
Anon_upload_enable=yes
local_root=/home/ftp/username2
创建username3
vi /etc/vsftpd/vsftpd_user_conf/username3
write_enable=YES
anon_world_readable_Only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp/username3
配置pam(用于FTP对用户的验证)
新建: /etc/pam.d/vsftpd.vu 文件
vi /etc/pam.d/vsftpd.vu
内容是2行:
auth required /lib/security/pam_userdb.so
db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so
db=/etc/vsftpd_login