前言:

  FTP有三种登录方式:匿名登录、本地系统用户登录和虚拟用户登录。

  虚拟用户是ftp服务器的专用用户,它的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。在VSFTP中,认证这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证。使用这种方式更加安全,并且配置更加灵活。

yum install -y vsftpd
vi /etc/vsftpd/vsftpd.conf #开启用户登录认证
anonymous_enable=NO
local_root=/data
chroot_local_user=YES

1.生成虚拟用户口令库文件(为了建立此口令库文件,先要生成一个文本文件。)

vi /etc/vsftp/user_list.txt
user1
pass
user2
pass

2.生成用户数据库

db_load -T -t hash -f /etc/vsftpd/user_list.txt /etc/vsftpd/user_list.db
chmod 600 /etc/vsftpd/user_list.db

3.创建虚拟用户PAM文件

vi /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/user_list
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/user_list

4.建立本地用户来映射虚拟用户

useradd -s /sbin/nologin vftp
chmod 700 /home/vftp

5.启动虚拟用户并映射到本地用户

vi /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vftp
pam_service_name=vftpd.vu

6.默认虚拟用户都在vsftp家目录,需要设置指定的目录,添加虚拟用户配置文件位置

添加用户配置目录:

vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vsftpd_user_conf
mkdir /etc/vsftpd/vsftpd_user_conf

添加用户配置文件:

vi /etc/vsftpd/vsftpd_user_conf/user1
local_root=/ftp/share
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO   #开放用户浏览、下载权限
anon_other_write_enable=YES   #重命名权限、续传,不建议开

设置权限:

chown vftp:root -R /ftp/share
service vsftpd restart