#!/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. CF261E Maxim and Calculator

    CF261E Maxim and Calculator 洛谷评测传送门 题目描述 Maxim has got a calculator. The calculator has two integer ...

  2. 卷积,reLu,池化的意义

    1.卷积 提取局部特征 2.Relu 留下相关特征,去掉不相关特征,卷积之后的正值越大,说明与卷积核相关性越强,负值越大,不相关性越大. 3.池化 池化的目的: (1)留下最相关的特征,或者说留下最明 ...

  3. 后端设置Cookie前端跨域获取丢失问题(基于springboot实现)

    1.跨域问题说明:后端域名为A.abc.com,前端域名为B.abc.com. 2.后端设置一个cookie发送给前台,domain应该是setDomain(“abc.com”),而不是setDoma ...

  4. 推荐WEB 端批量移动设备管理控制工具STF

    推荐WEB 端批量移动设备管理控制工具STF 1 官方网站 https://openstf.io/ 2 github https://github.com/openstf/stf 后面有时间了,抽空也 ...

  5. MySQL binlog三种模式

    1.1 Row Level  行模式 日志中会记录每一行数据被修改的形式,然后在slave端再对相同的数据进行修改 优点:在row level模式下,bin-log中可以不记录执行的sql语句的上下文 ...

  6. iOS依赖库管理工具之CocoaPods

    CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具.利用 CocoaPods,可以定义自己的依赖关系库 (称作 pods),并且随着时间的变化,在整个开发环境中对第 ...

  7. pyqt中pyrcc和pyuic的使用

    一.pyrcc的使用 1.1 作用 将资源文件转换成py文件,并在主程序引入 1.2 资源文件编写说明 新建resource.qrc,代码如下: <!DOCTYPE RCC><RCC ...

  8. 修咻咻对追光的人、云打印团队的Beta产品测试报告

    修咻咻对追光的人.云打印团队的Beta产品测试报告 作业描述 课程 软件工程1916|W(福州大学) 团队名称 修!咻咻! 作业要求 项目Beta冲刺(团队) 团队目标 切实可行的计算机协会维修预约平 ...

  9. Java内部类是如何实现的

    内部类(inner class)是定义在另一个类中的类. 内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据. 内部类可以对同一个包中的其他类隐藏起来 当想定义一个回调函数且不想编写大量代 ...

  10. Hbase flusher源码解析(flush全代码流程解析)

    版权声明:本文为博主原创文章,遵循版权协议,转载请附上原文出处链接和本声明. 在介绍HBASE flush源码之前,我们先在逻辑上大体梳理一下,便于后续看代码.flush的整体流程分三个阶段 1.第一 ...