VSFTP实现多用户访问,基于虚拟用户架设VSFTP

一、配置环境:

centos6.8×86+vsftp2.2.2

vsftp的安装过程可以参考“(腾讯云)centos下配置安装nginx+php+ftp+mysql”第六步:

关闭vsftp:

1
service vsftpd stop

二、架设基于虚拟用户的vsftp:

ftp中的虚拟用户不是真实的linux用户,而是映射帐户来达到设置权限的目的,一些集成工具就会使用这种功能。

修改/etc/vsftpd/vsftpd.conf:

1
vi /etc/vsftpd/vsftpd.conf

更改以下行内容:

1
2
3
4
5
6
7
8
9
10
11
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

1
2
touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list

2.创建日志保存文件:

1
touch var/log/xferlog

3.创建用户密码文本/var/ftp/passwd.txt :

1
vi /var/ftp/passwd.txt

写入你要创建的用户名和密码,奇行是用户名,偶行是密码:

1
2
3
4
user1
12345678
user2
12345678

4.创建虚拟用户的FTP文件存放路径文件夹:

1
mkdir /var/ftp/user_conf

三、进行认证:

1.安装Berkeley DB工具:

1
yum install db4 db4-utils

链接密码文件:

1
db_load -T -t hash -f /var/ftp/passwd.txt /var/ftp/passwd.db

编辑认证文件/etc/pam.d/vsftpd:

1
vi /etc/pam.d/vsftpd

注释原来内容,并加上下面两行:

1
2
auth required pam_userdb.so db=/var/ftp/passwd
account required pam_userdb.so db=/var/ftp/passwd

2.创建虚拟用户FTP服务文件

1
vi /var/ftp/user_conf/user1
1
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就可以使用了

1
service vsftpd restart

四、使用ftp工具链接ftp服务器:

如图所示,我们的链接已经成功了。