• 适用于Centos6/7,vsftp自动安装脚本


    #!/bin/bash
    #vsftp install 
    
    . /etc/rc.d/init.d/functions
    NUM=`rpm -q centos-release | awk -F '-' '{print $3}'`
    users=/etc/vsftpd/vftpuser.txt
    login=/etc/vsftpd/vftpuser.db
    generate_db="db_load -T -t hash -f $users $login"
    virtual_user_config=/etc/vsftpd/vuser_conf
    virtual_user_home=/data/www
    guest_username=ftpwww
    
    Centos7_firewall(){
            firewall-cmd --permanent --zone=public --add-service=ftp
            firewall-cmd --reload
    }
    Centos6_iptables(){
            iptables -A INPUT -p tcp  --dport 20 -j ACCEPT
            iptables -A INPUT -p tcp  --dport 21 -j ACCEPT
            service iptables save
    }
    install_vsftpd(){
    if [[ $NUM -eq 6 ]];then
            Centos6_iptables
    elif [[ $NUM -eq 7 ]];then
            Centos7_firewall
    fi
    setenforce 0
    yum -y install db4-utils
    yum -y install vsftpd
    if [[ $NUM -eq 7 ]];then
      systemctl enable vsftpd
    elif [[ $NUM -eq 6 ]];then
      chkconfig vsftpd on
    fi
    
    useradd -s /sbin/nologin ${guest_username}
    
    mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
    cat >/etc/vsftpd/vsftpd.conf<<EOF
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    pasv_enable=YES
    pasv_min_port=60000
    pasv_max_port=61000
    xferlog_std_format=YES
    listen=YES
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    
    pam_service_name=vsftpd
    guest_enable=YES
    guest_username=${guest_username}
    user_config_dir=/etc/vsftpd/vuser_conf
    #allow_writeable_chroot=YES
    EOF
    
    mkdir /etc/vsftpd/vuser_conf
    mkdir /etc/vsftpd/chroot_list
    
    echo 'auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser' > /etc/pam.d/vsftpd
    echo 'account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser' >> /etc/pam.d/vsftpd
    
    touch /etc/vsftpd/vftpuser.txt
    
    if [[ $NUM -eq 7 ]];then
      systemctl restart vsftpd
    elif [[ $NUM -eq 6 ]];then
      service vsftpd restart
    fi
    
    [ $? -eq 0  ]&&action $"Install vsftp:" /bin/true||action $"Install vsftp:" /bin/false
    iptables -A INPUT -p tcp --dport 60000:61000 -j ACCEPT
    iptables-save >>/etc/sysconfig/iptables
    }
    
    add_user(){
    mkdir -p /data/www/$1
    not_enough_parameter=56
    retval=0
    if [ "$#" -ne 2 ]; then
        echo "usage:`basename $0` <useradd> <user_name> <password>."
        exit $not_enough_parameter
    fi
    
    if grep -q "$1" "$users"; then
       passwd=$(sed -n "/$1/{n;p;}" "$users")
       if [ "$passwd" = "$2" ]; then
           echo "the user $1 already exists."
           exit $retval
       else
           echo "updating $1's password ... "
           sed -i "/$1/{n;s/$passwd/$2/;}" "$users"
           eval "$generate_db"
           exit $retval
       fi
    fi
    
    for i in "$1" "$2"
    do
        echo "$i" >> "$users"
    done
    
    eval "$generate_db"
    cat >> "$virtual_user_config"/"$1" <<EOF
    local_root=$virtual_user_home/$1
    write_enable=YES
    download_enable=YES
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    local_umask=022
    EOF
    
    mkdir "$virtual_user_home"/"$1"
    chown $guest_username "$virtual_user_home"/"$1"
    
    echo "==========$users============"
    cat $users
    }
    
    case "$1" in
        'install')
          install_vsftpd
    echo '----------------------------'
    echo '----------------------------'
    rpm -q vsftpd
    echo " "
    whereis vsftpd
            ;;
        'useradd')
          add_user $2 $3
    echo '----------------------------'
    echo '----------------------------'
    rpm -q vsftpd
    echo " "
    whereis vsftpd
            ;;
        *)
        echo "usage: $0 {install|useradd}"
        exit 1
            ;;
    esac
    
  • 相关阅读:
    Nginx负载均衡+代理+ssl+压力测试
    Nginx配置文件详解
    HDU ACM 1690 Bus System (SPFA)
    HDU ACM 1224 Free DIY Tour (SPFA)
    HDU ACM 1869 六度分离(Floyd)
    HDU ACM 2066 一个人的旅行
    HDU ACM 3790 最短路径问题
    HDU ACM 1879 继续畅通工程
    HDU ACM 1856 More is better(并查集)
    HDU ACM 1325 / POJ 1308 Is It A Tree?
  • 原文地址:https://www.cnblogs.com/new-journey/p/11294616.html
Copyright © 2020-2023  润新知