#!/bin/bash
echo -n "现有的虚拟用户:"vuser=$(cat /etc/vsftpd/vuser.list |sed '2~2d')echo $vuservvuser(){ while truedo read -p "请输入新建虚拟用户的名称:" vvuser if [[ $vvuser == "" ]] then echo "用户名不能为空,重新输入" echo $vvuser>>/etc/vsftpd/vuser.list elif grep $vvuser /etc/vsftpd/vuser.list then echo "虚拟用户已经存在,重新输入" else echo $vvuser>>/etc/vsftpd/vuser.list vpass trace menu service vsftpd restart &>/dev/null break fidone}vpass(){ while truedoread -s -p "请输入虚拟用户$vvuser的密码:" vpassechoif ((${#vpass}==0))then echo "密码不能为空,重新输入"elif ((${#vpass}<=3)) then echo "密码长度要大于3位,重新输入"elseecho $vpass>>/etc/vsftpd/vuser.listdb_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.dbbreakfidone}config1(){ cd /etc/vsftpd/vuser_dir/ touch $vvuser echo anon_world_readable_only=yes >$vvuser echo local_root=$trace/$vvuser >>$vvuser}config2(){ chmod o+w $trace/$vvuser cd /etc/vsftpd/vuser_dir/ touch $vvuser echo anon_world_readable_only=yes >$vvuser echo local_root=$trace/$vvuser >>$vvuser echo anon_upload_enable=yes >>$vvuser}trace(){ while true do read -p "请输入虚拟用户的根目录:" trace if [[ $trace == "" ]] then echo "虚拟用户的根目录不能为空,重新输入" elif [[ $trace == "/" ]] then echo "虚拟用户的根目录不能为/,重新输入" elif [[ $(echo $trace |awk '{print substr($0,1,1)}') != "/" ]] then echo "虚拟用户的根目录必须是绝对路径,重新输入" else mkdir -p $trace/$vvuser touch $trace/$vvuser/$vvuser break fi done}menu(){ echo -e "\t\t\t***选择虚拟用户$vvuser的权限***" echo -e "\t1.\t设置具备下载权限" echo -e "\t2.\t设置具备上传下载权限" read -p "你的选择是:" choice if (($choice==1)) then config1 else config2 fi }vvuser===#!/bin/bash
echo -n "现有的虚拟用户:"vuser=$(cat /etc/vsftpd/vuser.list |sed '2~2d')echo $vuservuser(){ while truedo read -p "请输入要删除的虚拟用户名:" vvuser if [[ $vvuser == "" ]] then echo "用户名不能为空,重新输入" continue elif ! grep $vvuser /etc/vsftpd/vuser.list then echo "虚拟用户不存在,重新输入" else deluser delnamefile fidone}deluser(){ user=($(cat /etc/vsftpd/vuser.list)) for i in $(seq 0 2 $((${#user[@]}-1))) do if [[ ${user[$i]} == $vvuser ]] then sed -i $(($i+1)),$(($i+2))d /etc/vsftpd/vuser.list fi done}delnamefile(){ rm -rf $(grep local_root /etc/vsftpd/vuser_dir/$vvuser |awk -F'=' '{print $2}') rm -rf /etc/vsftpd/vuser_dir/$vvuser rm -rf /etc/vsftpd/vuser.db db_load -T -t hash -f /etc/vsftpd/vuser.list vuser.db service vsftpd restart &>/dev/null echo "删除虚拟用户$vvuser成功" break}vuser