#!/bin/bash
#vsftp install . /etc/rc.d/init.d/functions
NUM=`rpm -q centos-release | awk -F '-' '{print $3}'`
users=/etc/vsftpd/vftpuser.txt
login=/etc/vsftpd/vftpuser.db
generate_db="db_load -T -t hash -f $users $login"
virtual_user_config=/etc/vsftpd/vuser_conf
virtual_user_home=/data/www
guest_username=ftpwww Centos7_firewall(){
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
}
Centos6_iptables(){
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
service iptables save
}
install_vsftpd(){
if [[ $NUM -eq 6 ]];then
Centos6_iptables
elif [[ $NUM -eq 7 ]];then
Centos7_firewall
fi
setenforce 0
yum -y install db4-utils
yum -y install vsftpd
if [[ $NUM -eq 7 ]];then
systemctl enable vsftpd
elif [[ $NUM -eq 6 ]];then
chkconfig vsftpd on
fi useradd -s /sbin/nologin ${guest_username} mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
cat >/etc/vsftpd/vsftpd.conf<<EOF
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
pasv_enable=YES
pasv_min_port=60000
pasv_max_port=61000
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list pam_service_name=vsftpd
guest_enable=YES
guest_username=${guest_username}
user_config_dir=/etc/vsftpd/vuser_conf
#allow_writeable_chroot=YES
EOF mkdir /etc/vsftpd/vuser_conf
mkdir /etc/vsftpd/chroot_list echo 'auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser' > /etc/pam.d/vsftpd
echo 'account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser' >> /etc/pam.d/vsftpd touch /etc/vsftpd/vftpuser.txt if [[ $NUM -eq 7 ]];then
systemctl restart vsftpd
elif [[ $NUM -eq 6 ]];then
service vsftpd restart
fi [ $? -eq 0 ]&&action $"Install vsftp:" /bin/true||action $"Install vsftp:" /bin/false
iptables -A INPUT -p tcp --dport 60000:61000 -j ACCEPT
iptables-save >>/etc/sysconfig/iptables
} add_user(){
mkdir -p /data/www/$1
not_enough_parameter=56
retval=0
if [ "$#" -ne 2 ]; then
echo "usage:`basename $0` <useradd> <user_name> <password>."
exit $not_enough_parameter
fi if grep -q "$1" "$users"; then
passwd=$(sed -n "/$1/{n;p;}" "$users")
if [ "$passwd" = "$2" ]; then
echo "the user $1 already exists."
exit $retval
else
echo "updating $1's password ... "
sed -i "/$1/{n;s/$passwd/$2/;}" "$users"
eval "$generate_db"
exit $retval
fi
fi for i in "$1" "$2"
do
echo "$i" >> "$users"
done eval "$generate_db"
cat >> "$virtual_user_config"/"$1" <<EOF
local_root=$virtual_user_home/$1
write_enable=YES
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
EOF mkdir "$virtual_user_home"/"$1"
chown $guest_username "$virtual_user_home"/"$1" echo "==========$users============"
cat $users
} case "$1" in
'install')
install_vsftpd
echo '----------------------------'
echo '----------------------------'
rpm -q vsftpd
echo " "
whereis vsftpd
;;
'useradd')
add_user $2 $3
echo '----------------------------'
echo '----------------------------'
rpm -q vsftpd
echo " "
whereis vsftpd
;;
*)
echo "usage: $0 {install|useradd}"
exit 1
;;
esac

适用于Centos6/7,vsftp自动安装脚本的更多相关文章

  1. mysql 自动备份和nginx自动安装脚本

    一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...

  2. Windows ftp脚本和RSCD agent自动安装脚本

    Windows ftp脚本 和bladelogic RSCD Agent自动安装脚本 比较简单的命令是msiexec /I "C:\RSCD85-SP1-WIN64.msi" /Q ...

  3. python第三方库自动安装脚本

    #python第三方库自动安装脚本,需要在cmd中运行此脚本#BatchInstall.pyimport oslibs = {"numpy","matplotlib&qu ...

  4. LAMP自动安装脚本

    #!/bin/bash # 功能描述:LAMP自动安装脚本 # 初始化 if [ "$(cat /etc/system-release | awk '{print $(NF-1)}' | a ...

  5. python3自动安装脚本,python3.x与python2.x共存

    1.前言: python3过程中,通过搜索一些文章参考安装过程发现比较麻烦,而且还出现一些不可预期的报错.python3环境需要升级openssl,所以为了部署到其他环境更方便,写自动安装脚本方式,且 ...

  6. Mysql5.7免编译版自动安装脚本

    一:readme: .此脚本仅仅适合于5.7免面编译安装版本. .安装是需自己选择mysql软件安装包:例如mysql--linux-glibc2.-x86_64.-linux-glibc2.-x86 ...

  7. OpenJDK自动安装脚本 InstallOpenJDK.vbs

    Oracle JDK 要收费了,Open JDK没有安装包,只有Zip,写了个安装脚本 InstallOpenJDK.vbs Rem ********************************* ...

  8. 自动安装脚本-------------基于LVMP搭建Nagios 监控

    Mysql初始化参数(mysql-5.6.31) /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local ...

  9. hadoop自动安装脚本

    还不能实现完全自动安装,只能算半自动的. 进行交互主要障碍有两点: 1. ssh-keygen的时候需要点击回车. 2. passwd 需要设置密码  如果谁能解决以上两点,欢迎email给我. 另外 ...

随机推荐

  1. 2016年蓝桥别A组模拟训练

    1. 网友年龄 某君新认识一网友. 当问及年龄时,他的网友说: “我的年龄是个2位数,我比儿子大27岁, 如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄” 请你计算:网友的年龄一共有多少种可能 ...

  2. 图论问题(1) : hdu 1198

    题目转自hdu 1198,题目传送门 题目大意: 给你11种单位水管摆放位置,若上下或左右有水管连接则视为这两点相连. 最后让你求这些张图中有几个连通块. 解题思路: 本来觉得这道题很简单,不就一个建 ...

  3. [LeetCode] 508. Most Frequent Subtree Sum 出现频率最高的子树和

    Given the root of a tree, you are asked to find the most frequent subtree sum. The subtree sum of a ...

  4. 第09组 Beta冲刺(2/5)

    队名:观光队 链接 组长博客 作业博客 组员实践情况 王耀鑫 过去两天完成了哪些任务 文字/口头描述 学习 展示GitHub当日代码/文档签入记录 接下来的计划 完成短租车,页面美化 还剩下哪些任务 ...

  5. 在 Vue 中使用 装饰器 Decorator

    Decorator 的语法还没有通过提案,所以项目中很少用.不过最近刚好有一个需求用到了. 装饰器的语法 http://es6.ruanyifeng.com/#docs/decorator 需求是,有 ...

  6. SpringBoot第十七篇:定时任务

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11076555.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   相信大家对 ...

  7. Redis学习之对象系统源码分析

    背景知识: Redis并没有直接使用sds,双端链表,字典,压缩列表,跳表等这些数据结构来直接实现键值对数据库,而是基于这些对象创建了一个对象系统,这个对象系统包含5个对象:字符串对象,列表对象,哈希 ...

  8. 获取豆瓣电影数据(R与API获取网页数据)

    一般成熟的网站都会有反爬虫策略,例如限制访问次数,限制访问 IP,动态显示数据等.爬虫和反爬虫就是一直相爱相杀地互相钳制.如果要通过爬虫来获取某些大型网站的数据,那是一件很费时费力的活.小白总遭遇过在 ...

  9. 【spring boot】spring boot 基于redis pipeline 管道,批量操作redis命令

    spring boot 2.x 使用RedisTemplate 操作 =================================== 1.pom.xml <!--spring2.0集成r ...

  10. Kubernetes中的Volume介绍

    Kubernetes中支持的所有磁盘挂载卷简介发表于 2018年1月26日 Weihai Feb 10,2016 7400 字 | 阅读需要 15 分钟 容器磁盘上的文件的生命周期是短暂的,这就使得在 ...