当前位置:操作系统 > Unix/Linux >>

wu-ftp管理脚本

自己写的,可能有用,如果有问题,可以给我发站内短信

  注:test_client.sh可以根据自己的情况,如果与test_server.sh 不在同一台机器,

  需要调用autotelnet.sh

  -----------说明---------

  一、testftp_server.sh

  1、用法:

  Usage:

  ./testftp_server.sh {start|stop|restart|status|userconf|mini|limit|loginfails

  |view|access|message|guest|denyuser|denyhost}

  2、参数说明:

  start:

  改变配置文件,并启动FTP服务器;下一次系统启动时,会自动启动该服务。

  stop:

  改变配置文件,并停止FTP服务器;下一次系统启动时,不自动启动该服务。

  restart:

  重新启动FTP服务器。

  status:

  查看FTP服务器的运行状态(运行或停止)。

  userconf:

  为系统添加FTP用户,具体用法为:

  ./testftp_server.sh userconf username

  新添加的用户继承超级用户的密码。

  mini:

  最小化FTP服务器的配置文件,只留下FTP服务器正常运行所必须的配置项。

  limit:

  设置FTP服务器限制的各类用户的最大在线数目,具体用法为:

  ./testftp_server.sh limit user_count times

  user_count---为最大在线数目,脚本会根据FTP服务器的配置文件自动处理某类用户。

  times---times中的字符串用逗号隔开,每一个字串表示一天。星期一到星期日分别用

  Mo、Tu、We、Th、Fr、Sa和Su表示,周末也可以用Wk表示。

  表示时间的小时和分钟之间不要用冒号隔开。“-”用来表示范围。

  loginfails:

  设置用户最大的登录失败次数,具体用法为:

  ./testftp_server.sh loginfails failed_counts

  failed_counts---为用户最大的登录失败次数。

  view:

  查看FTP服务器的主配置文件的内容。

  access:

  设置FTP用户的存取权限,具体请查看使用脚本该功能的输出信息。

  message:

  设置FTP服务器显示的信息。

  guest:

  设置作为guest对待的用户,具体用法为:

  ./testftp_server.sh guest username

  denyuser:

  设置哪些用户不能登录FTP服务器,可以删除或者添加用户,用法:

  ./testftp_server.sh denyuser del/add username

  del/add---指明是从拒绝的用户列表中删除用户还是添加用户到拒绝的用户列表中。

  denyhost:

  指明哪些用户可以从哪些地址或拒绝哪些用户可以从哪些地址访问FTP服务器,用法:

  ./testftp_server.sh denyhost add/del allow/deny username hostname

  add---为添加一条规则到配置文件;如果用户名和主机名相同,则认为是同一条规则;

  del---为从配置文件删除一条规则;如果用户名和主机名相同,则认为是同一条规则;

  allow / deny---指明允许还是拒绝。

  username---为欲对其执行该规则的用户;

  hostname---为主机名。

  二、testftp_client.sh

  客户端脚本只测试服务器端的limit选项,即最大在线用户限制。用法:

  ./testftp_client.sh conn_count username password hostname

  其中:

  conn_count:

  与FTP服务器建立连接的数目,应该比FTP服务器的限制数目大;

  username:

  登录FTP服务器的用户名;

  password:

  登录FTP服务器的用户密码;

  hostname:

  FTP服务器的主机名或IP地址。

  --------------------------test_server.sh------------------------

  #!/bin/bash

  . /etc/rc.d/init.d/functions

  test -f /etc/ftpaccess

  if [ $? -ne 0 ] ; then

  echo -e " \007FTP Server congif file--/etc/ftpaccess not found !"

  echo " Please check the installion of the FTP Server !"

  exit 1

  else

  arg_count=$#

  fi

  class_defined(){

  if [ `grep -c ^class /etc/ftpaccess` -lt 1 ] ; then

  echo -e "\007Class define not found!"

  echo "Please run $0 mini or $0 mini real/aonoymous address first!"

  exit 1

  fi

  }

  start() {

  if [ -f /etc/xinetd.d/wu-ftpd ] ; then

  grep -v -E "disable|\}" /etc/xinetd.d/wu-ftpd >/etc/xinetd.d/wu-ftpd.tmp

  echo -e "\tdisable\t\t\t= no\n}" >> /etc/xinetd.d/wu-ftpd.tmp

  mv -f /etc/xinetd.d/wu-ftpd.tmp /etc/xinetd.d/wu-ftpd

  /etc/rc.d/init.d/xinetd restart > /dev/null 2>&1

  #Check Result

  if [ `/usr/bin/nmap -p21-21 localhost |grep -c ftp` -eq 1 ] ; then

  echo "Start FTP SERVER Succeed!"

  else

  echo "Start FTP SERVER Failed!"

  fi

  fi

  }

  stop() {

  if [ -f /etc/xinetd.d/wu-ftpd ] ; then

  grep -v -E "disable|\}" /etc/xinetd.d/wu-ftpd >/etc/xinetd.d/wu-ftpd.tmp

  echo -e "\tdisable\t\t\t= yes\n}" >> /etc/xinetd.d/wu-ftpd.tmp

  mv -f /etc/xinetd.d/wu-ftpd.tmp /etc/xinetd.d/wu-ftpd

  /etc/rc.d/init.d/xinetd restart > /dev/null 2>&1

  #Check Result

  if [ `/usr/bin/nmap -p21-21 localhost |grep -c ftp` -eq 0 ] ; then

  echo "Stop FTP SERVER Succeed!"

  else

  echo "Stop FTP SERVER Failed!"

  fi

  fi

  }

  status(){

  if [ `/usr/bin/nmap -p21-21 localhost |grep -c ftp` -eq 1 ] ; then

  echo "FTP SERVER is running!"

  else

  echo "FTP SERVER stoped!"

  fi

  }

  userconf(){

  if [ -d /home/ftp/ ] ; then

  echo "The directory /home/ftp/ does exist"

  else

  mkdir /home/ftp/

  fi

  if [ `grep -c ^$username /etc/passwd` -ne 1 ] ; then

  useradd -d /home/ftp/$username -s /dev/null $username

  echo "User $username added"

  grep -v ^$username /etc/shadow > /etc/shadow.tmp

  echo "$username:`grep ^root /etc/shadow |cut -f 2-9 -d :`" >> /etc/shadow.tmp

  mv -f /etc/shadow.tmp /etc/shadow

  echo "User $username password is root's password"

  fi

  grep -v ^$username /etc/passwd > /etc/passwd.tmp

  echo "`grep ^$username /etc/passwd |cut -f 1-5 -d :`:/home/ftp/./$username/:/dev/null" >> /etc/passwd.tmp

  mv -f /etc/passwd.tmp /etc/passwd

  echo "Config User $username shells succeed"

  if [ `grep -c null /etc/shells` -ne 1 ] ; then

  echo -e "/dev/null" >> /etc/shells

  echo " System Shell /dev/null added"

  fi

  if [ -d /home/ftp/dev/ ] ; then

  echo "The directory /home/ftp/dev/ does exist"

  else

  mkdir /home/ftp/dev

  echo "Create directory /home/ftp/dev succeed"

  fi

  if [ -d /home/ftp/etc/ ] ; then

  echo "The directory /home/ftp/etc/ does exist"

  else

  mkdir /home/ftp/etc

  echo "Create directory /home/ftp/etc succeed"

  fi

  if [ -d /home/ftp/bin/ ] ; then

  echo "The directory /home/ftp/bin/ does exist"

  else

  mkdir /home/ftp/bin

  echo "Create directory /home/ftp/bin succeed"

  fi

  if [ -d /home/ftp/lib/ ] ; then

  echo "The directory /home/ftp/lib/ does exist"

  else

  mkdir /home/ftp/lib

  echo "Create directory /home/ftp/lib succeed"

  fi

  chmod 0511 /home/ftp/dev/ /home/ftp/etc/ /home/ftp/bi
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,