文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>一件安装vsftpd虚拟用户的脚本--大家提提建议

一件安装vsftpd虚拟用户的脚本--大家提提建议

时间:2008-09-05  来源:pop_star

文件: EZvsftp.sh
大小: 1KB
下载: 下载
    #!/bin/bash
# 自动话安装虚拟用户的ftp脚本
# 使用该脚本前,请确保机器网络通畅, 请确保机器本身没有安装vsftpd
# 测试用户名和密码均为 test
# 软件基础: vsftpd-2.0.5.tar.gz    on   ftp://vsftpd.beasts.org/users/cevans/
# 日期: 2008-09-04
# 作者: 飞龙
# QQ: 76790859
# 定义相关变量
VAR(){
export user_cf_dir="/etc/vsftpd_user_conf"
export ftp_root_dir="/var/ftpvu/testftp"
}
# 拷贝原始配置文件为备份配置文件
cf_bak(){
 cp vsftpd.conf /etc/vsftpd.conf.bak
}
# 生成指定配置文件
cf_file(){
echo -e 'local_enable=YES
anon_umask=070
chown_uploads=YES
chown_username=ftpguest
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
connect_from_port_20=YES
listen=YES
guest_enable=YES
guest_username=ftpguest
pam_service_name=ftp.vu
user_config_dir=/etc/vsftpd_user_conf'>/etc/vsftpd.conf
}
# 生成虚拟用户所需要的pam文件
pam_file(){
echo -e 'auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login'>/etc/pam.d/ftp.vu
}
# 生成vsftpd启动脚本
service_file(){
echo -e '. /etc/rc.d/init.d/functions
. /etc/sysconfig/network [ ${NETWORKING} = "no" ] && exit 0 [ -x /usr/local/sbin/vsftpd ] || exit 0 RETVAL=0
prog="vsftpd"
start() {
        if [ -f /etc/vsftpd.conf ] ; then
                for i in vsftpd.conf ; do
                        site=`basename $i`
                        echo -n $"Starting $prog for $site: "
                        /usr/local/sbin/vsftpd /etc/$i &
                        RETVAL=$?
                        [ $RETVAL -eq 0 ] && {
                           touch /var/lock/subsys/$prog
                           success $"$prog $site"
                        }
                        echo
                done
        else
                RETVAL=1
        fi
        return $RETVAL
}
stop() {
        echo -n $"Shutting down $prog: "
        killproc $prog
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
        return $RETVAL
}
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        stop
        start
        RETVAL=$?
        ;;
  condrestart)
        if [ -f /var/lock/subsys/$prog ]; then
            stop
            start
            RETVAL=$?
        fi
        ;;
  status)
        status $prog
        RETVAL=$?
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|condrestart|status}"
        exit 1
esac
exit $RETVAL'>/etc/init.d/vsftpd chmod 755 /etc/init.d/vsftpd
}
# 生成login.txt文件
login_file(){
 touch $user_cf_dir/login.txt
}
VAR # 获得安装包
wget -c ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.5.tar.gz
# 安装软件包
tar -zxvf vsftpd-2.0.5.tar.gz
cd vsftpd-2.0.5
make && make install
# 生成相关目录
for dir in $user_cf_dir $ftp_root_dir
do
 if [ ! -d $dir ] ; then
  mkdir -p $dir
 fi
done
CF_FILES=(1=/etc/vsftpd.conf.bak \
    2=/etc/vsftpd.conf \
    3=/etc/pam.d/ftp.vu \
    4=/etc/init.d/vsftpd \
    5=$user_cf_dir/login.txt)
for file_name in ${CF_FILES[@]}
do 
    FILE=`echo $file_name | cut -d= -f2`
 
 if [ ! -f $FILE ] ; then
  NO=`echo $file_name | cut -d= -f1`
  case $NO in
   1)
    cf_bak
    ;;
   
   2)
    cf_file
    ;;
   
   3)
    pam_file
    ;;
   
   4)
    service_file
    ;;
   5)
    login_file
  esac
    fi
done
# 添加一个ftp用户
id ftpguest
if [ $? != "0" ] ; then
 useradd -s /sbin/nologin ftpguest
fi
# 生成用户测试用户文件
echo -e 'test
test'>$user_cf_dir/login.txt
# 生成用户名和密码文件
db_load -T -t hash -f $user_cf_dir/login.txt /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_login.db
unset user_cf_dir
unset ftp_root_dir
exit 0
 
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载