• vsftp用户增减与权限管理脚本

    发布时间:2020-12-31 23:40:07
    作者:ynkulusi
  • vsftp用户与权限管理脚本
    #!/bin/bash                                                                                                                                         
    #                                                                                                                                                   
    echo "-------------------------------------------"                                                                                                  
    echo "本脚本可添加或删除单个FTP用户..."                                                                                                             
    echo -e "-------------------------------------------\n"                                                                                             
                                                                                                                                                        
    adduser(){                                                                                                                                          
    echo -n "请输入要添加的用户名:";read add_name                                                                                                      
    grep -q "$add_name" /etc/vsftpd/vsftpd_login_old.txt && echo -e "\033[31;1m该用户已经存在,请确认!\033[0m" && exit 1                               
    echo -n "请输入访问目录的完整路径(默认:/home/virtual):";read dir                                                                                   
    echo -n "是否赋予管理员权限[Y/N]:";read manage                                                                                                     
    [ -z $dir ] && dir=/home/virtual                                                                                                                    
    password=$(mkpasswd -l 8 -C 2 -d 2 -c 4 -s 0)                                                                                                       
                                                                                                                                                        
    echo -e $add_name >> /etc/vsftpd/vsftpd_login_old.txt                                                                                               
    echo -e $password >> /etc/vsftpd/vsftpd_login_old.txt                                                                                               
    mv /etc/vsftpd/vsftpd_login.db /etc/vsftpd/ftp_db_back/vsftpd_login_`date +%Y%m%d-%H%M`.db                                                          
    db_load -T -t hash -f /etc/vsftpd/vsftpd_login_old.txt /etc/vsftpd/vsftpd_login.db                                                                  
                                                                                                                                                        
    [ ! -d $dir ] && mkdir -p $dir && chmod 755 $dir                                                                                                    
    cp /etc/vsftpd/config/template /etc/vsftpd/config/$add_name                                                                                         
    [ $manage == "Y" ] &> /dev/null || [ $manage == "y" ] &> /dev/null && sed -i 's/NO/YES/g;' /etc/vsftpd/config/$add_name                             
    echo -e "local_root=$dir" >> /etc/vsftpd/config/$add_name                                                                                           
    set timeout 1                                                                                                                                       
    echo -e "用户\033[32;1m$add_name\033[0m已经能够访问\033[31;1m$dir\033[0m目录了."                                                                    
    echo -e "密码为: \033[33;1m$password\033[0m"                                                                                                        
    }                                                                                                                                                   
                                                                                                                                                        
    deluser(){                                                                                                                                          
    echo -n "请输入要删除的用户名:";read del_name                                                                                                      
    if grep -q "$del_name" /etc/vsftpd/vsftpd_login_old.txt ;then                                                                                       
      sed -i '/'$del_name'/,+1d' /etc/vsftpd/vsftpd_login_old.txt                                                                                       
      mv /etc/vsftpd/vsftpd_login.db /etc/vsftpd/ftp_db_back/vsftpd_login_`date +%Y%m%d-%H%M`.db                                                        
      db_load -T -t hash -f /etc/vsftpd/vsftpd_login_old.txt /etc/vsftpd/vsftpd_login.db                                                                
      rm -rf /etc/vsftpd/config/$del_name                                                                                                               
      set timeout 1                                                                                                                                     
      echo -e "用户\033[32;1m$del_name\033[0m已经被删除了."                                                                                             
    else                                                                                                                                                
      echo -e  "\033[31;1m该用户不存在,请确认!\033[0m" && exit 1                                                                                      
    fi                                                                                                                                                  
    }                                                                                                                                                   
                                                                                                                                                        
    read -p "添加用户(A),删除用户(D),请选择:" operate                                                                                                 
    case $operate in                                                                                                                                    
    A|a)                                                                                                                                                
      adduser ;;                                                                                                                                        
    D|d)                                                                                                                                                
      deluser ;;                                                                                                                                        
    *)                                                                                                                                                  
      echo "输入错误,取消本次操作!"                                                                                                                   
      exit 5                                                                                                                                            
      ;;                                                                                                                                                
    esac
  • 分类:bash
    标签: vsftp
    评论数:0 阅读数:811