一、配置环境:
centos6.8×86+vsftp2.2.2
vsftp的安装过程可以参考“(腾讯云)centos下配置安装nginx+php+ftp+mysql”第六步:
关闭vsftp:
service vsftpd stop
二、架设基于虚拟用户的vsftp:
ftp中的虚拟用户不是真实的linux用户,而是映射帐户来达到设置权限的目的,一些集成工具就会使用这种功能。
修改/etc/vsftpd/vsftpd.conf:
vi /etc/vsftpd/vsftpd.conf
更改以下行内容:
anonymous_enable=NO #不允许匿名访问
local_enable=YES #设定本地用户可以访问,如果使用虚拟用户选择NO以后,所有虚拟用户无法访问
chroot_list_enable=YES #用户不能离开主目录
xferlog_file=/var/log/xferlog #设定vsftpd的服务日志保存路径。
ascii_upload_enable=YES
ascii_download_enable=YES
pam_service_name=vsftpd #PAM文件认证名
guest_enable=YES
guest_username=ftp #使用centos内置的账户ftp
user_config_dir=/var/ftp/user_conf
#设定虚拟用户的FTP文件存放路径,文件名和用户名一致
二、创建相关文件:
1.创建chroot list,添加用户ftp
touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list
2.创建日志保存文件:
touch var/log/xferlog
3.创建用户密码文本/var/ftp/passwd.txt :
vi /var/ftp/passwd.txt
写入你要创建的用户名和密码,奇行是用户名,偶行是密码:
user1
12345678
user2
12345678
4.创建虚拟用户的FTP文件存放路径文件夹:
mkdir /var/ftp/user_conf
三、进行认证:
1.安装Berkeley DB工具:
yum install db4 db4-utils
链接密码文件:
db_load -T -t hash -f /var/ftp/passwd.txt /var/ftp/passwd.db
编辑认证文件/etc/pam.d/vsftpd:
vi /etc/pam.d/vsftpd
注释原来内容,并加上下面两行:
auth required pam_userdb.so db=/var/ftp/passwd
account required pam_userdb.so db=/var/ftp/passwd
2.创建虚拟用户FTP服务文件
vi /var/ftp/user_conf/user1
local_root=/opt/var/user1
#虚拟用户的根目录(根据实际修改)
write_enable=YES #可写
anon_umask=022 #掩码
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
3.重启vsftp就可以使用了
service vsftpd restart
四、使用ftp工具链接ftp服务器:

如图所示,我们的链接已经成功了。
2 pings
[…] « VSFTP实现多用户访问,基于虚拟用户架设VSFTP […]
[…] VSFTP实现多用户访问,基于虚拟用户架设VSFTP » […]