#!/bin/bash
yum -y install vsftpd
cat >>/etc/vsftpd/vusers.list<<EOF
admin
fame@community!
expolit
fame1234
EOF
if [ -d /etc/vsftpd/ ];then
cd /etc/vsftpd/
if [ -f /etc/vsftpd/vusers.list ];then
db_load -T -t hash -f vusers.list vusers.db
if [ $? -eq 0 ];then
chmod 600 /etc/vsftpd/vusers.*
useradd -d /famecv -s /sbin/nologin expolit #创建用户
useradd -d /famecv/ftp4cam -s /sbin/nologin admin #创建用户
if [ $? -eq 0 ];then
chmod 755 /famecv/ftp4cam
chmod 755 /famecv
#为虚拟用户建立PAM认证文件
echo 'auth required pam_userdb.so db=/etc/vsftpd/vusers' >> /etc/pam.d/vsftpd.vu
echo 'account required pam_userdb.so db=/etc/vsftpd/vusers' >> /etc/pam.d/vsftpd.vu
if [ $? -eq 0 ] && [ -f /etc/vsftpd/vsftpd.conf ];then
sed -i 's/pam_service_name=vsftpd/pam_service_name=vsftpd.vu/g' /etc/vsftpd/vsftpd.conf
sed -i 's/userlist_enable=YES/userlist_enable=NO/g' /etc/vsftpd/vsftpd.conf
if [ $? -eq 0 ];then
mkdir /etc/vsftpd/vusers_dir
if [ -d /etc/vsftpd/vusers_dir ];then
echo "local_root=/famecv/ftp4cam" > /etc/vsftpd/vusers_dir/admin
echo "write_enable=YES" >> /etc/vsftpd/vusers_dir/admin
echo "anon_upload_enable=yes" >> /etc/vsftpd/vusers_dir/admin
echo "anon_mkdir_write_enable=yes" >> /etc/vsftpd/vusers_dir/admin
echo "anon_other_write_enable=yes" >> /etc/vsftpd/vusers_dir/admin
echo "local_root=/famecv" > /etc/vsftpd/vusers_dir/expolit
echo "write_enable=YES" >> /etc/vsftpd/vusers_dir/expolit
echo "anon_upload_enable=yes" >> /etc/vsftpd/vusers_dir/expolit
echo "anon_mkdir_write_enable=yes" >> /etc/vsftpd/vusers_dir/expolit
echo "anon_other_write_enable=yes" >> /etc/vsftpd/vusers_dir/expolit
systemctl restart vsftpd
firewall-cmd --add-port=20-21/tcp --permanent
systemctl reload firewalld
else
echo "用户配置文件未创建"
fi
else
echo "修改vsftpd.conf失败"
fi
else
echo "创建用户认证失败"
fi
else
echo "创建虚拟账号失败"
fi
else
echo "创建数据库文件失败"
fi
fi
fi
Vsftpd部署脚本
于 2021-09-02 21:05:01 首次发布