5645re 发表于 2017-9-13 09:57:11

linux系统脚本配置ftp服务器

# vim vsftp_home.sh
#############################################
#####   date    2017-09-10
#####   name    ftp服务器
#####   anth    joker
#############################################
#!/bin/bash
. /root/test/vsftp_function.sh
while true
do
      #clear
      cat<<-eof
      *************************************
      ***      不要重复操作         ***
      *************************************
      ****    1       安装ftp服务
      ****    2       配置临时ftp服务器
      ****    3       配置企业ftp服务器
      ****    4       配置虚拟ftp服务器
      ****    5       退出
      *************************************
      eof
#选择
      read -p "请输入您的选择 :" CHOISE
      case $CHOISE in
      1)
                install_ftp
      ;;
      2)
                install_provisional_server
      ;;
      3)
                install_enterprise_server
      ;;
      4)
                install_Virtualaccount_server
      ;;
      5)
                exit 520
      ;;
      esac
done

# vim vsftp_function.sh
####检查服务,安装服务函数
install_ftp(){
      service vsftpd status &>/dev/null
#       STATE1=`service vsftpd status | awk '{print $3}'`
      case $? in
      0)
                echo "FTP服务已经安装,正在检查服务是否启动......"
                STATE1=`service vsftpd status | awk '{print $3}'`
                if [ $STATE1 == "stopped"];then
                        /etc/init.d/vsftpd start
                         STATE2=`service sshd status|awk -F"[ .]+" '{print $5}'`
                        if [ $STATE2 == "running" ];then
                              echo "服务已经启动......"
                        else
                              echo "请检查服务"
                        fi
                else
                        echo "服务已经启动......"
                fi
      ;;
      1)
                yum -y install vsftpd lftp
      esac
}
####配置临时ftp服务器
install_provisional_server(){
      SOURCE=/etc/vsftpd/vsftpd.conf
      sed -i 's/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/' $SOURCE
      sed -i 's/#anon_upload_enable=YES/anon_upload_enable=YES/' $SOURCE
      chown ftp.ftp /var/ftp/pub
      /bin/ls /var/ftp/xuegoddate
      if [ $? -ne 0 ];then
                mkdir /var/ftp/xuegoddate
      else
                echo "已经存在"
      fi
      chown ftp.ftp /var/ftp/xuegoddate
      service vsftpd restart
}
##配置系统账号FTP服务器
install_enterprise_server(){
#添加两个账户
      for i in ` cat /etc/passwd|awk -F: '{print $1}'`
      do
                if [ $i != "team1" ];then
                        useradd -s /sbin/nologin team1
                        echo "123456"|passwd --stdin team1
                fi
                if [ $i != "team2" ];then
                        useradd -s /sbin/nologin team2
                        echo "123456"|passwd --stdin team2
                fi
      done &>/dev/null
#配置vsftpd.conf配置文件
      SOURCE=/etc/vsftpd/vsftpd.conf
      sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' $SOURCE
      sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' $SOURCE
      sed -i 's@#chroot_list_file=/etc/vsftpd/chroot_list@chroot_list_file=/etc/vsftpd/chroot_list@' $SOURCE
      echo "local_root=/var/www/html">>$SOURCE
#配置chroot_list文件
      echo -e "team1\nteam2">/etc/vsftpd/chroot_list
#       echo "team2">>/etc/vsftpd/chroot_list
#查看/var/www/html是否存在
      ls /var/www/html
      if [ $? -ne 0 ];then
                mkdir -p /var/www/html
      else
                echo "已经存在!!"
      fi
      chmod -R o+w /var/www/html
      service vsftpd restart
}
##创建虚拟账号ftp服务器
install_Virtualaccount_server(){
#创建用户数据库
      echo -e "commuser\n123456\nvipuser\n123456">/etc/vsftpd/vsftpd_virtualuser.txt
      which db_load
      if [ $? -ne 0 ];then
                yum install -y db
      fi
      chmod 600 /etc/vsftpd/vsftpd_virtualuser.db
#配置PAM
      cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.`date +%F`.bak
      >/etc/pam.d/vsftpd
      echo "auth      required      /lib64/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_virtualuser">>/etc/pam.d/vsftpd
      echo "account   required      /lib64/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_virtualuser">>/etc/pam.d/vsftpd
#创建虚拟账号对应的系统账号
      for i in ` cat /etc/passwd|awk -F: '{print $1}'`
      do
                if [ $i != "ftpuser" ];then
                        useradd -d /var/ftp/share ftpuser
                        chmod -R 500 /var/ftp/share
                fi
                if [ $i != "ftpvip" ];then
                        useradd -d /var/ftp/vip ftpvip
                        chmod -R 700 /var/ftp/vip
                fi
      done &>/dev/null
#配置主文件
      SOURCE=/etc/vsftpd/vsftpd.conf
      sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' $SOURCE
      sed -i 's/local_enable=YES/local_enable=YES/' $SOURCE
      echo "user_config_dir=/etc/vsftpd/vuserconfig">>$SOURCE
      echo "max_clients=300">>$SOURCE
      echo "max_per_ip=10">>$SOURCE
#建立虚拟账号配置文件
      mkdir /etc/vsftpd/vuserconfig
      touch /etc/vsftpd/vuserconfig/commuser
      touch /etc/vsftpd/vuserconfig/vipuser
      echo -e "guest_enable=yes\nguest_username=ftpuser\nanon_world_readable_only=no\nanon_max_rate=50000">/etc/vsftpd/vuserconfig/commuser
      echo -e "guest_enable=yes\nguest_username=ftpvip\nanon_world_readable_only=no\nwrite_enable=yes\nanon_mkdir_write_enable=yes\nanon_upload_enable=yes\nanon_max_rate
=100000">/etc/vsftpd/vuserconfig/vipuser
      service vsftpd restart

}

页: [1]
查看完整版本: linux系统脚本配置ftp服务器