一、 安装vsftpd
yum -y install vsftpd
二、 创建系统用户(FTP虚拟用户的宿主用户)
1. 创建用户主目录
mkdir -p /data/ ftp/sys_user/directory
2. 创建用户(用户名:ftpuser_tfs)
useradd -g root -M -d /data/ftp/sys_user/directory -s/sbin/nologin ftp_sys_user
3. 创建用户密码
passwd ftp_sys_user
三、创建FTP文件保存目录
mkdir –p /data/ftp/file_dir
chmod -R 777 file_dir
四、创建FTP虚拟用户
虚拟用户的用户认证是通过pam方式去认证,pam文件里面指定了认证的db文件,db文件又是通过明文用户名和密码文件生成而来。
指定pam文件是通过配置文件 /etc/vsftpd/vsftpd.conf 的 pam_service_name=vsftpd 配置指定的。
pam文件位置:/etc/pam.d/vsftpd
1. 添加ftp虚拟用户(生成db文件)
vi /etc/vsftpd/vuser_passwd.txt
在文本文件vuser_passwd.txt中加入用户名和密码,奇行为用户名,偶行为密码
ftp_user_one
654321
ftp_user_two
654321
通过以下命令生成db文件:
cd /etc/vsftpd
db_load -T -t hash -f vuser_passwd.txt vuser_passwd.db
2. 指定db文件(64位系统)编辑pam文件/etc/pam.d/vsftpd,
把文件内容全部注释掉。添加如两行配置:
auth required /lib64/security/pam_userdb.sodb=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.sodb=/etc/vsftpd/vuser_passwd
(db=/etc/vsftpd/vuser_passwd 指定了db文件的位置。)
3. 创建FTP虚拟用户配置文件(配置文件名必须与FTP虚拟用户名一致)
命令:
mkdir -p /etc/vsftpd/vuser_conf
vi /etc/vsftpd/vuser_conf/ftp_user_one
文件内容如下:
local_root=/data/ftp/file_dir
write_enable=NO
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
vi /etc/vsftpd/vuser_conf/ftp_user_two
文件内容如下:
local_root=/data/ftp/file_dir
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
五、配置vsftpd
编辑文件/etc/vsftpd/vsftpd.conf
修改或启用的
#不允许匿名访问
anonymous_enable=NO
#启用限定用户在其主目录下
chroot_local_user=YES
手动添加的
#设定启用虚拟用户功能
guest_enable=YES
#指定虚拟用户的宿主用户
guest_username=ftp_sys_user
#虚拟用户配置文件存放的路径
user_config_dir=/etc/vsftpd/vuser_conf
#限定用户在其主目录下需要添加这个配置
allow_writeable_chroot=YES
六、重启FTP服务
命令:systemctl restart vsftpd.service