355 views
Linux-shell脚本

自动创建VSFTPD虚拟用户脚本

文章目录

使用While循环 创建多个虚拟用户

将for注释,改成while

#!/bin/bash
#2020年4月1日 修改
#auto create vsftpd for virtual user
#by ying
########################
CONF_DIR=”/etc/vsftpd”
VIR_USER=”$*”
SYS_USER=”ftpuser”
NUM=”$#”
LOGIN_DB=”vsftpd_login”
if [ $# -eq 0 ];then
echo -e “\033[32m———————\033[0m”
echo -e “\033[32mUsage:{/bin/sh $0 jfedu001 jfedu002|jfedu003}\033[0m”
exit 0
fi

if [ ! -f $CONF_DIR/vsftpd.conf ];then
yum install vsftpd* db4* -y
else
continue
fi

#for i in `echo $VIR_USER`
#do
#grep “$i” $CONF_DIR/${SYS_USER}s.txt
#if [ $? -ne 0 ];then
#cat>>$CONF_DIR/${SYS_USER}s.txt<<EOF
#$i
#pwd_$i
#EOF
#fi
#done
#USER_LIST=`echo $VIR_USER`
#USER_LIST=($USER_LIST)
USER_LIST=(`echo $VIR_USER`)

i=0

while [ $i -le $NUM ]
do
grep “$VIR_USER” $CONF_DIR/${SYS_USER}s.txt
if [ $? -ne 0 ];then
cat>>$CONF_DIR/${SYS_USER}s.txt<<EOF
${USER_LIST[i]}
pwd_${USER_LIST[i]}
EOF
fi

((i++))
done

db_load -T -t hash -f $CONF_DIR/${SYS_USER}s.txt $CONF_DIR/$LOGIN_DB.db
chmod 700 $CONF_DIR/${SYS_USER}s.txt
chmod 700 $CONF_DIR/$LOGIN_DB.db
cat>/etc/pam.d/vsftpd<<EOF
auth sufficient /lib64/security/pam_userdb.so db=$CONF_DIR/$LOGIN_DB
account sufficient /lib64/security/pam_userdb.so db=$CONF_DIR/$LOGIN_DB
EOF

useradd -s /sbin/nologin $SYS_USER
grep “guest_” $CONF_DIR/vsftpd.conf
if [ $? -ne 0 ];then
cat>>$CONF_DIR/vsftpd.conf<<EOF
guest_enable=YES
guest_username=$SYS_USER
pam_service_name=vsftpd
user_config_dir=$CONF_DIR/vsftpd_user_conf
virtual_use_local_privs=YES
reverse_lookup_enable=NO #取消DNS反向解析,防止访问慢
EOF
fi

#for j in `echo $VIR_USER`
#do
#mkdir -p $CONF_DIR/vsftpd_user_conf/
#cat>$CONF_DIR/vsftpd_user_conf/$j <<EOF
#local_root=/home/$SYS_USER/$j
#write_enable=YES
#anon_world_readable_only=YES
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
#EOF
#mkdir -p /home/$SYS_USER/$j/
#done
j=0
while [ $j -le $NUM ]
do

mkdir -p $CONF_DIR/vsftpd_user_conf/

cat>$CONF_DIR/vsftpd_user_conf/${USER_LIST[j]} <<EOF
local_root=/home/$SYS_USER/${USER_LIST[j]}
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
EOF

mkdir -p /home/$SYS_USER/${USER_LIST[j]}/

((j++))

done

chown -R $SYS_USER.$SYS_USER /home/$SYS_USER
service vsftpd restart

Leave a Reply

影子专属博客 赣ICP备17013143号