实现基于文件验证的vsftpd虚拟用户
1 安装vsftpd
yum install -y vsftpd
2 创建用户数据库文件
cat >/etc/vsftpd/vusers.txt<<EOF
qiu
123456
zhang
654321
EOF
db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/users.db
3 创建FTP访问目录
mkdir -pv /data/ftproot/upload
useradd -d /data/ftproot -s /sbin/nologin -r vuser
setfacl -m u:vuser:rwx /data/ftproot/upload
4 创建pam文件
注意: 虽然密码文件是/etc/vsftpd/users.db,但.db一定不能加,加了就报错了
cat > /etc/pam.d/vsftpd.db <<EOF
auth required pam_userdb.so db=/etc/vsftpd/users
account required pam_userdb.so db=/etc/vsftpd/users
EOF
5 指定pam文件
mkdir /etc/vsftpd/conf.d/
sed -Eri "s#(pam_service_name=vsftpd)#\1.db#" /etc/vsftpd/vsftpd.conf
echo "guest_enable=YES" >> /etc/vsftpd/vsftpd.conf
echo "guest_username=vuser" >> /etc/vsftpd/vsftpd.conf
echo "user_config_dir=/etc/vsftpd/conf.d/" >> /etc/vsftpd/vsftpd.conf
6 用户权限配置
cat > /etc/vsftpd/conf.d/qiu<<EOF
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/ftproot/qiu
EOF
cat > /etc/vsftpd/conf.d/zhang<<EOF
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/ftproot/zhang
EOF
mkdir /data/ftproot/qiu
mkdir /data/ftproot/zhang
touch /data/ftproot/qiu/qiu
touch /data/ftproot/zhang/zhang
7 测试
ftp 192.168.31.38
至此实现了本地文件的验证.