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