CentOS 6.4 Linux vsftpd shell管理系统脚本完整版

由于脚本中涉及到很多关于VSFTPD的配置目录、权限、syslog系统的配置等问题,可能完全复制过去不能够正常使用,需要进行相应的修改,请各位有需求的朋友根据自己的需求修改,有需要的朋友可以联系我帮忙修改。后续我还是会将整个系统打包封装发布出来的。

#!/bin/bash
echo "***********************************************************************************"
echo "*                                                                                 *"
echo "*                          东妮FTP服务器管理系统 V1.1                                *"
echo "*                                                                                 *"
echo "***********************************************************************************"
echo "*                                用户管理                                                *"
echo "*                                                                                 *"
echo "*      选择 0、修改用户密码                  选择 4、查看所有FTP用户                        *"
echo "*      选择 1、查询用户                      选择 5、查看用户磁盘限额                       *"
echo "*      选择 2、添加用户(默认密码:用户名@123) 选择 6、修改用户磁盘限额                      *"
echo "*      选择 3、删除用户                                                                     *"
echo "*                                                                                 *"
echo "***********************************************************************************"
echo "*                                日志管理                                                *"
echo "*                                                                                 *"
echo "*      选择 7、查询某用户某日期某操作动作    选择 10、查看当前所有导出日志文件名            *"
echo "*      选择 8、查询某日期所有用户操作记录    选择 11、查看提定名称的导出日志                *"
echo "*      选择 9、查询某用户所有日期操作记录                                                   *"
echo "*                                                                                 *"
echo "***********************************************************************************"
echo "*                             管理员操作审计                                             *"
echo "*                                                                                 *"
echo "*      选择 15、查询某管理员某天操作记录     选择 17、查看指定文件名记录                    *"
echo "*      选择 16、查询所有管理员操作文件名     选择 18、导出提定操作文件到Win              *"
echo "*                                                                                 *"
echo "***********************************************************************************"
echo "*                                网络管理                                                *"
echo "*                                                                                 *"
echo "*      选择 20、查看网络状态                 选择 25、禁用防火墙                            *"
echo "*      选择 21、重启网络                     选择 26、ping测试                             *"
echo "*      选择 22、禁用网络                                                                    *"
echo "*      选择 23、查看防火墙状态                                                              *"
echo "*      选择 24、重启防火墙                                                                  *"
echo "*                                                                                 *"
echo "***********************************************************************************"
echo "*                                系统管理                                                *"
echo "*                                                                                 *"
echo "*      选择 30、查询CPU、内存使用情况        选择 35、重启操作系统                          *"
echo "*      选择 31、查询当前磁盘状态             选择 36、计划重启                              *"
echo "*      选择 32、查询系统当前时间             选择 37、计划关机                              *"
echo "*      选择 33、修改系统当前日期时间         选择 38、取消计划关机或重启                    *"
echo "*      选择 34、关闭操作系统                                                                *"
echo "*                                                                                 *"
echo "***********************************************************************************"
echo "*                              高级权限管理                                              *"
echo "*                                                                                 *"
echo "*      选择 40、只能下载                 选择 43、完全权限                                  *"
echo "*      选择 41、只能上传                 选择 44、查看用户权限                              *"
echo "*      选择 42、只能下载与上传           选择 45、单用户管理多用户                          *"
echo "*                                                                                 *"
echo "***********************************************************************************"
echo "*                               其它功能                                                 *"
echo "*                                                                                 *"
echo "*      选择 46、查看当前在线用户                                                            *"
echo "*                                                                                 *"
echo "***********************************************************************************"
read -p "请选择您要做的操作:" caozuo
case $caozuo in
    0) read -p "请输入您要修改密码的用户名: " selectuser
        while [ ! "$selectuser" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $selectuser` ]
        do
        read -p "对不起,您输入的用户名$selectuser不存在,请重新输入要查询的用户名,退出请按q键: " selectuser
        if [ "$selectuser" ] && [ "$selectuser" == "q" ];then
        exit
        fi
        done
        passwd $selectuser
        echo "记录: 管理员$adminroot$timedate1修改用户$selectuser密码" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "您已经成功修改用户$selectuser的密码,按回车键继续操作" var
;;
    1) read -p "请输入您要查询的用户名: " selectuser
        while [ ! "$selectuser" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $selectuser` ]
        do
        echo "记录: 管理员$adminroot$timedate1查询用户$selectuser" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "对不起,查询的用户名$selectuser不存在,请重新输入要查询的用户名,退出请按q键: " selectuser
        if [ "$selectuser" ] && [ "$selectuser" == "q" ];then
        exit
        fi
        done
        echo "记录: 管理员$adminroot$timedate1查询用户$selectuser" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "您查询的用户$selectuser为FTP用户,按回车键继续" var
;;
    2) read -p "请输入您需要添加的用户名: " adduser
        while [ ! "$adduser" ] || ( [ "$adduser" ] && [ `more /etc/vsftpd/chroot_list | grep -w $adduser` ] )
        do
        read -p "对不起,您的操作有误,用户名不能为空,或您添加的用户已经存在,请重新输入要查询的用户名,退出请按q键: " adduser
        if [ "$adduser" ] && [ "$adduser" == "q" ];then
        exit
        fi
        done
        useradd $adduser -d /opt/vsftp/$adduser -s /sbin/nologin
        chmod -R 777 /opt/vsftp/$adduser
        echo $adduser@123 | passwd --stdin $adduser
        echo "$adduser" >> /etc/vsftpd/chroot_list
        setquota -u $adduser  512000 614400 0 0 /opt
        cp /etc/vsftpd/vconf/moban /etc/vsftpd/vconf/$adduser
        echo "记录: 管理员$adminroot$timedate1添加用户$adduser" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "您添加用户$adduser成功,按回车键继续" var
;;
   3) read -p "请输入您需要删除的用户名: " deluser
        while [ ! "$deluser" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $deluser` ]
        do
        read -p "对不起,您输入的用户名$deluser不存在,请重新输入要删除的用户名,退出请按q键: " deluser
        if [ "$deluser" ] && [ "$deluser" == "q" ];then
        exit
        fi
        done
        userdel $deluser
        rm -rf /opt/vsftp/$deluser/.gnome2
        rm -rf /opt/vsftp/$deluser/.bashrc
        rm -rf /opt/vsftp/$deluser/.bash_profile
        rm -rf /opt/vsftp/$deluser/.bash_logout
        rm -rf /etc/vsftpd/vconf/$deluser
#       umount /opt/vsftp/$deluser/public
#       rm -rf /opt/vsftp/$deluser/public
        umount /opt/vsftp/$deluser
        mv /opt/vsftp/$deluser /opt/vsftp/bak$deluser
        rm -rf /opt/vsftp/$deluser
        sed -i "/$deluser/d" /etc/vsftpd/chroot_list
        sed -i "/$deluser/d" /etc/vsftpd/mountuser.sh
#       sed -i "/$deluser/d" /etc/vsftpd/mountpublic.sh
        echo "记录: 管理员$adminroot$timedate1删除用户$deluser" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "您已经成功删除用户$deluser,按回车键继续" var
;;
   4) more /etc/vsftpd/chroot_list
        read -p "以上为所有FTP用户,按回车键继续" var
;;
   5) read -p "请输入您要查询限额的用户名: " selectquota
        while [ ! "$selectquota" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $selectquota` ]
        do
        read -p "对不起,您输入的用户名$selectquota不存在,请重新输入要查询限额的用户名,退出请按q键: " selectquota
        if [ "$selectquota" ] && [ $selectquota == q ];then
        exit
        fi
        done
        quota $selectquota | sed -n '3p' | echo "当前用户的软限制为: `awk '{print $3}'`KB"
        quota $selectquota | sed -n '3p' | echo "当前用户的硬限制为: `awk '{print $4}'`KB"
        echo "记录: 管理员$adminroot$timedate1查询用户$selectquota磁盘限额信息" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "当前用户的磁盘限额如上,按回车键继续" var
;;
   6) read -p "请输入您要修改限额的用户名: " revisequota
        while [ ! "$revisequota" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $revisequota` ]
        do
        read -p "对不起,您输入的用户名$revisequota不存在,请重新输入要查询限额的用户名,退出请按q键: " revisequota
        if [ "$revisequota" ] && [ $revisequota == q ];then
        exit
        fi
        done
        quota $revisequota | sed -n '3p' | echo "修改前用户的软限制为: `awk '{print $3}'`KB"
        quota $revisequota | sed -n '3p' | echo "修改前用户的硬限制为: `awk '{print $4}'`KB"
        read -p "请修改您要修改的用户软限制值,默认单位为KB: " quota1
        while [ ! $quota1 ];
        do
        read -p "对不起,修改用户的软限制值不能为空,请重新输入软限制值,退出请按q键: " quota1
        if [ $quota1 ];then
        if [ $quota1 == q ];then
        exit
        fi
        fi
        done
        read -p "请修改您要修改的用户硬限制值,默认单位为KB: " quota2
        while [ ! $quota2 ] || [ $quota2 -lt $quota1 ];
        do
        read -p "对不起,修改用户的硬限制值不能为空,且硬限制的值不能小于软限制的值,请重新输入硬限制值,退出请按q键: " quota2
        if [ "$quota2" ] && [ "$quota2" == "q" ];then
        exit
        fi
        done
        setquota -u $revisequota  $quota1 $quota2 0 0 /opt
        echo "记录: 管理员$adminroot$timedate1修改用户$revisequota软限制为: $quota1 硬限制为: $quota2" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        quota $revisequota | sed -n '3p' | echo "修改后用户的软限制为: `awk '{print $3}'`KB"
        quota $revisequota | sed -n '3p' | echo "修改后用户的硬限制为: `awk '{print $4}'`KB"
        read -p "当前用户修改后磁盘限额如上,按回车键继续" var
;;
     7) read -p "请输入您要查询的用户名: " selectuser
        while [ ! $selectuser ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $selectuser` ]
        do
        read -p "对不起,您查询的用户名$selectuser不存在,请重新输入,退出请按q键: " selectuser
        if [ "$selectuser" ] && [ "$selectuser" == "q" ];then
        exit
        fi
        done
        read -p "请输入您要查询的日期(格式:2013-07-11 08:32:21): " datetime3
        while [ ! $datetime3 ]
        do
        read -p "对不起您的输入有误,日期时间不能空,请重新输入: " datetime3
        done
        read -p "请输入您要查询的操作动作(DELETE、MKDIR、UPLOAD、RMDIR、DOWNLOAD、LOGIN): " opreate
        while [ ! $opreate ]
        do
        read -p "对不起,操作动作不能为空,请重新输入: " opreate
        done
        while ( [ $opreate != 'MKDIR' ] && [ $opreate != 'UPLOAD' ] && [ $opreate != 'DELETE' ] && [ $opreate != 'LOGIN' ] && [ $opreate != 'RMDIR' ] && [ $o
preate != 'DOWNLOAD' ] )
        do
        read -p "对不起您输入的操作动作有误,请重新输入: " opreate
        done
        echo " 操作日期|操作时间|操作人|是否成功|操作动作|IP地址|操作内容" > /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        more /var/log/messages | grep $selectuser] | grep $opreate | grep $datetime3 | awk '{print $1"|"$2"|"$5"|"$6"|"$7"|"$9"|"$10 }' >> /opt/vsftp/ftplog/
"$timedate1""$selectuser""$opreate".xls
        sed -i 's/://3' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        sed -i 's/"//g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        sed -i 's/\[//' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        sed -i 's/]//' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        sed -i 's/,//g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        sed -i 's/UPLOAD/上传资料/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        sed -i 's/DELETE/删除文件/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        sed -i 's/LOGIN/用户登录/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        sed -i 's/RMDIR/删除目录/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        sed -i 's/MKDIR/新建目录/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        sed -i 's/DOWNLOAD/下载资料/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        sed -i 's/OK/成功/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        sed -i 's/FAIL/失败/g' /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        echo "记录: 管理员$adminroot$timedate1查询用户$selectuser的操作动作$opreate日志" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "直接查看请按a键,下载到Win查看请按b键: " abjian
        if [ "$abjian" == "a" ];then
        more /opt/vsftp/ftplog/"$timedate1""$selectuser""$opreate".xls
        read -p "以上为指定用户的操作日志,按回车键继续操作" var
        elif [ "$abjian" == "b" ];then
        cd /opt/vsftp/ftplog
        sz "$timedate1""$selectuser""$opreate".xls
        read -p "指定用户的操作日志已经成功导出到Win,按回车键继续操作" var
        fi
;;
    8) read -p "请输入您要查询的日期(格式:2012-09-12): " riqi
        while [ ! $riqi ]
        do
        read -p "对不起日期不能为空,请重新输入(格式:2012-09-12): " riqi
        done
        while [ `echo $riqi | grep -q '^[1-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$' && echo ! aa || echo aa` ]
        do
        read -p "您输入的日期格式错误,请重新输入(格式:2012-09-12): " riqi
        done
        read -p "请输入您要查询的时间,(格式:23:12): " shijian
        if [ ! $shijian ];then
        echo " 操作日期|操作时间|操作人|是否成功|操作动作|IP地址|操作内容" > /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
       more /var/log/messages | grep $riqi | grep vsftpd | awk '{print $1"|"$2"|"$5"|"$6"|"$7"|"$9"|"$10 }' >> /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/://3' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/"//g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/\[//' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/]//' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/,//g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/UPLOAD/上传资料/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/DELETE/删除文件/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/LOGIN/用户登录/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/RMDIR/删除目录/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/MKDIR/新建目录/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/DOWNLOAD/下载资料/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/OK/成功/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        sed -i 's/FAIL/失败/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        echo "记录: 管理员$adminroot$timedate1查询日期为:$riqi的所有用户操作记录" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "直接查看请按a键,下载到Win查看请按b键: " abjian
        if [ "$abjian" == "a" ];then
        more /opt/vsftp/ftplog/"$timedate1"查询"$riqi".xls
        read -p "以上为指定用户的操作日志,按回车键继续操作" var
        elif [ "$abjian" == "b" ];then
        cd /opt/vsftp/ftplog
        sz "$timedate1"查询"$riqi".xls
        read -p "指定用户的操作日志已经成功导出到Win,按回车键继续操作" var
        fi
        else
        while [ `echo $shijian | grep -q '^[0-9][0-9]:[0-9][0-9]$' && echo ! aa || echo aa` ]
        do
        read -p "您输入的时间格式不正确,请重新输入(格式:23:12): " shijian
        done
        shi=`echo ${shijian:0:2}`
        jian=`echo ${shijian:${#shijian}-2:${#shijian}}`
        echo "操作日期|操作时间|操作人|是否成功|操作动作|IP地址|操作内容" > /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        more /var/log/messages | grep $riqi | grep $shijian | grep vsftpd | awk '{print $1"|"$2"|"$5"|"$6"|"$7"|"$9"|" $10 }' >> /opt/vsftp/ftplog/"$timedate
1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/://3' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/"//g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/\[//' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/]//' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/,//g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/UPLOAD/上传资料/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/DELETE/删除文件/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/LOGIN/用户登录/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/RMDIR/删除目录/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/MKDIR/新建目录/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/DOWNLOAD/下载资料/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/OK/成功/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        sed -i 's/FAIL/失败/g' /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian"
        echo "记录: 管理员$adminroot$timedate1查询日期为:$riqi时间为:$shijian的所有用户操作记录" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "直接查看请按a键,下载到Win查看请按b键: " abjian
        if [ "$abjian" == "a" ];then
        more /opt/vsftp/ftplog/"$timedate1"查询"$riqi"-"$shi"."$jian".xls
        read -p "以上为指定用户的操作日志,按回车键继续操作" var
        elif [ "$abjian" == "b" ];then
        cd /opt/vsftp/ftplog
        sz "$timedate1"查询"$riqi"-"$shi"."$jian".xls
        read -p "指定用户的操作日志已经成功导出到Win,按回车键继续操作" var
        fi
        fi
;;
     9) read -p "请输入您要查询的用户名: " selectuser
        while [ ! $selectuser ]
        do
        read -p "对不起,查询的用户名不能为空,请重新输入要查询的用户名: " selectuser
        done
        while [ ! `more /etc/vsftpd/chroot_list | grep -o $selectuser` ]
        do
        read -p "对不起,您查询的用户名不存在,请重新输入要查询的用户名: " selectuser
        done
        echo "操作日期|操作时间|操作人|是否成功|操作动作|IP地址|操作内容" > /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        more /var/log/messages | grep $selectuser | grep vsftpd | awk '{print $1 "|" $2 "|" $5 "|" $6 "|"$7 "|" $9 "|" $10 }' >> /opt/vsftp/ftplog/"$timedate
1"查询"$selectuser".xls
        sed -i 's/://3' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        sed -i 's/"//g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        sed -i 's/\[//' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        sed -i 's/]//' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        sed -i 's/,//g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        sed -i 's/UPLOAD/上传资料/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        sed -i 's/DELETE/删除文件/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        sed -i 's/LOGIN/用户登录/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        sed -i 's/RMDIR/删除目录/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        sed -i 's/MKDIR/新建目录/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        sed -i 's/DOWNLOAD/下载资料/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        sed -i 's/OK/成功/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        sed -i 's/FAIL/失败/g' /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        echo "记录: 管理员$adminroot$timedate1查询日期为:$selectuser的所有用户操作记录" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "直接查看请按a键,下载到Win查看请按b键: " abjian
        if [ "$abjian" == "a" ];then
        more /opt/vsftp/ftplog/"$timedate1"查询"$selectuser".xls
        read -p "以上为指定用户的操作日志,按回车键继续操作" var
        elif [ "$abjian" == "b" ];then
        cd /opt/vsftp/ftplog
        sz "$timedate1"查询"$selectuser".xls
        read -p "指定用户的操作日志已经成功导出到Win,按回车键继续操作" var
        fi
;;
    10) ls /opt/vsftp/ftplog/ | more
        echo "记录: 管理员$adminroot$timedate1查看了所有导出的用户操作日志文件名" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为所有已导出用户操作日志文件名,按回车键继续" var
;;
    11) read -p "请输入您要查看的用户操作日志文件名: " opreatefile
        while [ ! $opreatefile ]
        do
        read -p "对不起,您输入的文件名不能为空,请重新输入: " opreatefile
        done
        filelist=`ls /opt/vsftp/ftplog/ | grep -w ^\$opreatefile\$`
        while [ "$filelist" != "$opreatefile" ]
        do
        read -p "对不起,你输入的文件名不存在,请重新输入文件名: " opreatefile
        filelist=`ls /opt/vsftp/ftplog/ | grep -w ^\$opreatefile\$`
        done
        more /opt/vsftp/ftplog/$opreatefile
        echo "记录: 管理员$adminroot$timedate1查看了用户操作日志文件:$opreatefile" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为您查询的操作日志文件$opreatefile全部内容,按回车键继续" var
;;
    15) read -p "请输入审计管理员用户名: " auditadmin
        read -p "请输入审计管理员密码: " -s auditpasswd
        while [ "$auditadmin" != "admin45930" ] || [ "$auditpasswd" != "SOHU123" ]
        do
        read -p "对不起,您输入的用户名或密码不正确,请重新输入审计管理员用户名: " auditadmin
        read -p "对不起,您输入的用户名或密码不正确,请重新输入审计管理员密码: " -s auditpasswd
        done
        read -p "请输入您要查询的管理员名字: " rootadmin
        while [ ! $rootadmin ]
        do
        read -p "对不起管理员名字不能为空,请重新输入: " rootadmin
        done
        read -p "请输入您要查询的操作日期(格式:20130711): " opreatetime
        while [ ! $opreatetime ]
        do
        read -p "对不起操作日期不能为空,请重新输入: " opreatetime
        done
        while [ ! `ls /opt/vsftp/adminlog/* | grep "$rootadmin""$opreatetime"` ]
        do
        read -p "对不起,您查询的操作信息不存在,按回车键继续: " var
        exit
        done
        more /opt/vsftp/adminlog/$rootadmin$opreatetime
        echo "记录: 审计管理员$auditadmin$timedate1审计了管理员$rootadmin操作记录" >> /opt/vsftp/adminlog/"$auditadmin""$timedate2"
        read -p "以上为管理员$rootadmin$opreatetime操作记录,按回车键继续" var
;;
    16) read -p "请输入审计管理员用户名: " auditadmin
        read -p "请输入审计管理员密码: " -s auditpasswd
        while [ "$auditadmin" != "admin45930" ] || [ "$auditpasswd" != "SOHU123" ]
        do
        read -p "对不起,您输入的用户名或密码不正确,请重新输入审计管理员用户名: " auditadmin
        read -p "对不起,您输入的用户名或密码不正确,请重新输入审计管理员密码: " -s auditpasswd
        done
        ls /opt/vsftp/adminlog/ | more
        echo "记录: 审计管理员$auditadmin$timedate1查询了所有管理员操作记录文件" >> /opt/vsftp/adminlog/"$auditadmin""$timedate2"
        read -p "以上为所有管理员操作记录文件,按回车键继续" var
;;
    17) read -p "请输入审计管理员用户名: " auditadmin
        read -p "请输入审计管理员密码: " -s auditpasswd
        while [ "$auditadmin" != "admin45930" ] || [ "$auditpasswd" != "SOHU123" ]
        do
        read -p "对不起,您输入的用户名或密码不正确,请重新输入审计管理员用户名: " auditadmin
        read -p "对不起,您输入的用户名或密码不正确,请重新输入审计管理员密码: " -s auditpasswd
        done
        read -p "请输入您要查看的管理员操作文件: " opreatefile
        filelist=`ls /opt/vsftp/adminlog/ | grep -w ^\$opreatefile\$`
        while [ "$filelist" != "$opreatefile" ]
        do
        read -p "对不起,你输入的文件名不存在,请重新输入文件名: " opreatefile
        filelist=`ls /opt/vsftp/adminlog/ | grep -w ^\$opreatefile\$`
        done
        more /opt/vsftp/adminlog/$opreatefile
        echo "记录: 审计管理员$rootadmin$timedate1审计了$opreatefile管理员操作文件" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为您查询的操作日志文件$opreatefile全部内容,按回车键继续" var
;;
    18) read -p "请输入审计管理员用户名: " auditadmin
        read -p "请输入审计管理员密码: " -s auditpasswd
        while [ "$auditadmin" != "admin45930" ] || [ "$auditpasswd" != "SOHU123" ]
        do
        read -p "对不起,您输入的用户名或密码不正确,请重新输入审计管理员用户名: " auditadmin
        read -p "对不起,您输入的用户名或密码不正确,请重新输入审计管理员密码: " -s auditpasswd
        done
        read -p "请输入您要查看的管理员操作文件: " opreatefile
        filelist=`ls /opt/vsftp/adminlog/ | grep -w ^\$opreatefile\$`
        while [ "$filelist" != "$opreatefile" ]
        do
        read -p "对不起,你输入的文件名不存在,请重新输入文件名: " opreatefile
        filelist=`ls /opt/vsftp/adminlog/ | grep -w ^\$opreatefile\$`
        done
        cd /opt/vsftp/adminlog/
        sz $opreatefile
        echo "记录: 审计管理员$rootadmin$timedate1导出$opreatefile管理员操作文件" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "您已经成功导出$opreatefile管理员操作文件,按回车键继续" var
;;
    20) service network status
        echo "记录: 管理员$adminroot$timedate1查看网络状态" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为当前网络状态,按回车键继续" var
;;
    21) service network restart
        echo "记录: 管理员$adminroot$timedate1重启网络" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为网络重启状态,如不正常,请联系超级管理员,按回车键继续" var
;;
    22) service network stop
        echo "记录: 管理员$adminroot$timedate1禁用网络" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为网络禁用状态,如不正常,请联系超级管理员,按回车键继续" var
;;
    23) service iptables status
        echo "记录: 管理员$adminroot$timedate1查看防火墙状态" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为当前防火墙状态,如不正常,请联系超级管理员,按回车键继续" var
;;
    24) service iptables restart
        echo "记录: 管理员$adminroot$timedate1重启防火墙" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为防火墙重启状态,如不正常,请联系超级管理员,按回车键继续" var
;;
    25) service iptables stop
        echo "记录: 管理员$adminroot$timedate1禁用防火墙" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为防火墙禁用状态,如不正常,请联系超级管理员,按回车键继续" var
;;
    26) read -p "请输入您要ping的IP地址: " pingIP
        while [ ! $pingIP ]
        do
        read -p "对不起,IP地址不能为空,请重新输入: " pingIP
        done
        echo "记录: 管理员$adminroot$timedate1对IP:$pingIP进行了连通性测试" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        ping -c 5 $pingIP
        read -p "以上为连通性测试结果,按回车键继续" var
;;
    30) awk  '$1=="cpu"{Total=$2+$3+$4+$5+$6+$7;print "当前剩余CPU: " $5/Total*100"% \n当前已使用CPU: " (Total-$5)*100/Total"%"}' </proc/stat
        echo "系统最大内存:`free -m | grep Mem | awk '{print $2}'`"
        echo "用户已经内存:`free -m | grep Mem | awk '{print $3}'`"
        echo "剩余可用内存:`free -m | grep Mem | awk '{print $4}'`"
        echo "系统最大虚拟内存:`free -m | grep Swap | awk '{print $2}'`"
        echo "用户已经虚拟内存:`free -m | grep Swap | awk '{print $3}'`"
        echo "剩余可用虚拟内存:`free -m | grep Swap | awk '{print $4}'`"
        echo "记录: 管理员$adminroot$timedate1查看了CPU与内存的使用情况" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为当前系统CPU内存使用情况,按回车键继续" var
;;
    31) df | grep /dev/sda5 | echo "存储空间已用: `awk '{print $3}'`"
        df | grep /dev/sda5 | echo "存储空间可用: `awk '{print $4}'`"
        df | grep /dev/sda5 | echo "已用百分比:`awk '{print $5}'`"
        echo "记录: 管理员$adminroot$timedate1查看了存储空间使用情况" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为当前存储空间使用情况,按回车键继续" var
;;
    32) date
        echo "记录: 管理员$adminroot$timedate1查看了当前系统时间" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为当前系统时间,按回车继续" var
;;
    33) read -p "请输入要修改的日期时间(格式:2013-07-11 20:22:11)" revisetime
        while [ ! "$revisetime" ]
        do
        read -p "对不起,修改时间不能为空,请重新输入: " revisetime
        done
        date -s "$revisetime"
        echo "记录: 管理员$adminroot$timedate1修改系统时间为$revisetime" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "以上为修改后时间,按回车键继续" var
;;
    34) read -p "你真的要关机吗?是请按y,否则按q键退出: " YES
        if [ $YES == y ];then
        echo "记录: 管理员$adminroot$timedate1关闭服务器" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        shutdown -h now
        elif [ $YES == q ];then
        echo "记录: 管理员$adminroot$timedate1退出了关闭服务器操作" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        exit
        fi
;;
    35) read -p "你真得要重启吗?是请按y,否则按q键退出: " YES
        if [ $YES == y ];then
        echo "记录: 管理员$adminroot$timedate1重启服务器" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        shutdown -r now
        elif [ $YES == q ];then
        echo "记录: 管理员$adminroot$timedate1退出了重启服务器操作" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        exit
        fi
;;
    36) read -p "请输入你计划关机时间,以分钟为单位: " sec
        echo "记录: 管理员$adminroot$timedate1设置计划关机任务于$sec分钟后关闭服务器" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        shutdown -h +$sec &
        read -p "您已计划$sec分钟后关闭服务器,按回车键继续" var
;;
    37) read -p "请输入你计划重启时间,以分钟为单位: " sec
        echo "记录: 管理员$adminroot$timedate1设置计划重启任务于$sec分钟后重启服务器" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        shutdown -r +$sec &
        read -p "您已计划$sec分钟后重启服务器,按回车键继续" var
;;
    38) shutdown -c
        echo "记录: 管理员$adminroot$timedate1取消了计划任务重启或关闭服务器的操作" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
        read -p "您已取消重启关机服务器计划,按回车键继续" var
;;
    40) read -p "请输入您要修改权限的用户名: " xiugaiuser
        while [ ! "$xiugaiuser" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $xiugaiuser` ]
        do
        read -p "对不起,您输入的用户名$xiugaiuser不存在,请重新输入用户名,退出请按q键: " xiugaiuser
        if [ "$xiugaiuser" ] && [ $xiugaiuser == q ];then
        exit
        fi
        done
        sed -i "s/^#cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLS
T,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g" /etc/vsftpd/vconf/$xiugaiuser
        sed -i "s/^cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/#cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,
MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g" /etc/vsftpd/vconf/$xiugaiuser
        sed -i "s/^cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/#cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,
CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g" /etc/vsftpd/vconf/$xiugaiuser
        read -p "您已成功修改$xiugaiuser权限为只能下载权限,按回车键继续" var
        echo "记录: 管理员$adminroot$timedate1修改$xiugaiuser权限为只能下载权限" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
;;
    41) read -p "请输入您要修改权限的用户名: " xiugaiuser
        while [ ! "$xiugaiuser" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $xiugaiuser` ]
        do
        read -p "对不起,您输入的用户名$xiugaiuser不存在,请重新输入用户名,退出请按q键: " xiugaiuser
        if [ "$xiugaiuser" ] && [ $xiugaiuser == q ];then
        exit
        fi
        done
        sed -i "s/^cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/#cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,
CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g" /etc/vsftpd/vconf/$xiugaiuser
        sed -i "s/^cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/#cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST
,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g" /etc/vsftpd/vconf/$xiugaiuser
        sed -i "s/^#cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,
MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g" /etc/vsftpd/vconf/$xiugaiuser
        read -p "您已成功修改$xiugaiuser权限为只能上传与新建,按回车键继续" var
        echo "记录: 管理员$adminroot$timedate1修改$xiugaiuser权限为只能上传与新建" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
;;
    42) read -p "请输入您要修改权限的用户名: " xiugaiuser
        while [ ! "$xiugaiuser" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $xiugaiuser` ]
        do
        read -p "对不起,您输入的用户名$xiugaiuser不存在,请重新输入用户名,退出请按q键: " xiugaiuser
        if [ "$xiugaiuser" ] && [ $xiugaiuser == q ];then
        exit
        fi
        done
        sed -i "s/^cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/#cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLS
T,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g" /etc/vsftpd/vconf/$xiugaiuser
        sed -i "s/^cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/#cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,
MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g" /etc/vsftpd/vconf/$xiugaiuser
        sed -i "s/^#cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,
CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g" /etc/vsftpd/vconf/$xiugaiuser
        read -p "您已成功修改$xiugaiuser权限为只能下载与上传新建,按回车键继续" var
        echo "记录: 管理员$adminroot$timedate1修改$xiugaiuser权限为只能下载与上传新建" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
;;
    43) read -p "请输入您要修改权限的用户名: " xiugaiuser
        while [ ! "$xiugaiuser" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $xiugaiuser` ]
        do
        read -p "对不起,您输入的用户名$xiugaiuser不存在,请重新输入用户名,退出请按q键: " xiugaiuser
        if [ "$xiugaiuser" ] && [ $xiugaiuser == q ];then
        exit
        fi
        done
        sed -i "s/^cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/#cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLS
T,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g" /etc/vsftpd/vconf/$xiugaiuser
        sed -i "s/^cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER$/#cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,
MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g" /etc/vsftpd/vconf/$xiugaiuser
        sed -i "s/^cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/#cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,
CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER/g" /etc/vsftpd/vconf/$xiugaiuser
        read -p "您已成功修改$xiugaiuser权限为完全权限,按回车键继续" var
        echo "记录: 管理员$adminroot$timedate1修改$xiugaiuser权限为完全权限" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
;;
    44) read -p "请输入您要查询权限的用户名: " ftpuser
        while [ ! "$ftpuser" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $ftpuser` ]
        do
        read -p "对不起,您输入的用户名$ftpuser不存在,请重新输入用户名,退出请按q键: " ftpuser
        if [ "$ftpuser" ] && [ $ftpuser == q ];then
        exit
        fi
        done
      number1=`more /etc/vsftpd/vconf/$ftpuser | grep ^cmds_allowed=STOR,RETR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER`
      number2=`more /etc/vsftpd/vconf/$ftpuser | grep ^cmds_allowed=RETR,ABOR,CWD,CDUP,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER`
      number3=`more /etc/vsftpd/vconf/$ftpuser | grep ^cmds_allowed=STOR,MKD,ABOR,CDUP,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,SITE,SIZE,TYPE,USER`
      number4=`more /etc/vsftpd/vconf/$ftpuser | grep ^write_enable=YES`
        if [ "$number1" ];then
        read -p "用户$ftpuser只能上传下载新建,按回车键继续操作" var
        elif [ "$number2" ];then
        read -p "用户$ftpuser只能下载,按回车键继续操作" var
        elif [ "$number3" ];then
        read -p "用户$ftpuser只能上传新建,按回车键继续操作" var
        elif [ "$number4" ];then
        read -p "用户$ftpuser具有完全权限,按回车键继续操作" var
        fi
;;
    45) read -p "请输入您宿主用户名: " ftpuser
        while [ ! "$ftpuser" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $ftpuser` ]
        do
        read -p "对不起,您输入的宿主用户$ftpuser不存在,请重新输入,退出请按q键: " ftpuser
        if [ "$ftpuser" ] && [ $ftpuser == q ];then
        exit
        fi
        done
        read -p "请输入您的寄宿用户名: " ftpuser1
        while [ ! "$ftpuser1" ] || [ ! `more /etc/vsftpd/chroot_list | grep -w $ftpuser1` ]
        do
        read -p "对不起,您输入寄宿用户$ftpuser不存在,请重新输入,退出请按q键: " ftpuser1
        if [ "$ftpuser" ] && [ $ftpuser == q ];then
        exit
        fi
        done
#       touch /opt/vsftp/$ftpuser1/.$ftpuser1
#       chattr +a /opt/vsftp/$ftpuser1/.$ftpuser1
        mkdir -p /opt/vsftp/$ftpuser/$ftpuser1
        mount --bind /opt/vsftp/$ftpuser1 /opt/vsftp/$ftpuser/$ftpuser1
        chmod -R 777 /opt/vsftp/$ftpuser/$ftpuser1
        echo "mount --bind /opt/vsftp/$ftpuser1 /opt/vsftp/$ftpuser/$ftpuser1" >> /etc/vsftpd/mountuser.sh
        read -p "您已经成功将用户$ftpuser1挂载到$ftpuser里,按回车键继续操作" var
        echo "记录: 管理员$adminroot$timedate1挂载用户$ftpuser1$ftpuser" >> /opt/vsftp/adminlog/"$adminroot""$timedate2"
;;
    46) read -p "请选择的功能正在开发中,请回车键继续" var ;;
     *) read -p "请选择的功能正在开发中,请回车键继续" var
;;

还没有评论,快来抢沙发!

发表评论

  • 😉
  • 😐
  • 😡
  • 😈
  • 🙂
  • 😯
  • 🙁
  • 🙄
  • 😛
  • 😳
  • 😮
  • emoji-mrgree
  • 😆
  • 💡
  • 😀
  • 👿
  • 😥
  • 😎
  • ➡
  • 😕
  • ❓
  • ❗
  • 69 queries in 0.400 seconds