CentOS6一键安装vsftp脚本

如果你想在你的Linux服务器上搭建一个安全、高性能、稳定性好的FTP服务器用于服务器文件管理,那么vsftpd可能是你的首选应用。

下面我分享一个vsftp的一键安装脚本,以/data/www为根目录,www用户拥有目录读写权限为例。

一,使用方式

1,安装vsftp

sh auto_install_vsftp.sh install

2,新建ftp用户

sh auto_install_vsftp.sh useradd user password

二,auto_install_vsftp.sh脚本内容

#!/bin/sh
#author: vim
#qq:82996821
#filename: auto_install_vsftp.sh

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
#ftp目录
virtual_user_home=/data/www
#拥有ftp目录权限的用户
guest_username=www

#Source function library
. /etc/rc.d/init.d/functions

install_vsftpd(){
setenforce 0
yum -y install db4-utils
yum -y install vsftpd
chkconfig vsftpd on

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=65000
pasv_max_port=65006
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
EOF

mkdir /etc/vsftpd/vuser_conf
mkdir /etc/vsftpd/chroot_list

#i386 32位系统打开下列两行
#echo ‘auth required pam_userdb.so db=/etc/vsftpd/vftpuser‘ > /etc/pam.d/vsftpd
#echo ‘account required pam_userdb.so db=/etc/vsftpd/vftpuser‘ >> /etc/pam.d/vsftpd

#X64 64位系统打开下列两行
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

service vsftpd start
[ $? -eq 0  ]&&action $"Install vsftp:" /bin/true||action $"Install vsftp:" /bin/false
#开启防火墙,21连接端口,65000-65006为被动模式数据传输端口
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 65000:65006 -j ACCEPT
iptables-save >/etc/sysconfig/iptables
}

add_user(){
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
local_root=$virtual_user_home
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"
chown $guest_username "$virtual_user_home"

echo "==========$users============"
cat $users
}

case "$1" in
    ‘install‘)
      install_vsftpd
        ;;
    ‘useradd‘)
      add_user $2 $3
        ;;
    *)
    echo "usage: $0 {install|useradd}"
    exit 1
        ;;
esac
时间: 2024-07-29 16:29:16

CentOS6一键安装vsftp脚本的相关文章

一键安装shell脚本

一.一键安装nginx脚本 #!/bin/bash #################################### #Name:nginx_install.sh #Author:doublelinux #version:1.1 #Date:2017/08/19 #################################### yum -y install pcre pcre-devel yum -y install openssl openssl-devel mkdir -p

Rehat一键安装mysql脚本和备份数据库脚本

Rehat一键安装mysql脚本 ##说明:适用,Rehat 5 6 7 1.运行状态,运行成功输出mysql临时密码 2.代码如下 #!/bin/bash #获取系统信息 sudo cat /etc/issue>myfile aa=sudo grep '5.' myfile bb=sudo grep '6.' myfile cc=sudo grep '7.' myfile echo $aa echo "It is a test" > myfile #获取系统信息 sudo

Centos Denyhosts 一键安装配置脚本

一键安装denyhosts脚本并配置为常用配置.放置Linux服务器被暴力破解 由于不能上传tar文件.所以改为zip压缩. 将附件的zip压缩包解压后将整个文件夹上传到服务器. 然后进入denyhost文件夹 赋予脚本执行权限. chmod 700 denyhosts.sh ./ denyhosts.sh 脚本内容是: denyhosts.sh #!/bin/bash   # Copyright (c) 2015.6  Fenei # BY:封飞 # 2015年6月29日23点 # denyh

一键安装lamp脚本--初级版

#!/bin/bash #write by zhang_pc #at 2015.07.21 #apache2.2.27 mysql5.1 php5.4 #安装说明,由于网速原因,就不下载了,执行脚本前要把源码上传到脚本相同的目录下 echo -e "\033[32m this is a lamp 一键安装script\033[0m" echo -e "\033[32m 第一步安装apache \033[0m" echo -e "\033[32m 第二步安装

centos6.5安装vsftp步骤

安装vsftp yum -y install vsftpd; 配置文件/etc/vsftpd/vsftpd.conf; 创建用户及创建密码 useradd -s /sbin/nologin ftpuser; echo "ftpuser" | passwd --stdin ftpuser; 防火墙开启21端口 vim /etc/sysconfig/iptables;-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT service iptables r

LNMP一键安装shell脚本(v1.2)

鉴于搭建一个LNMP环境使用一步一步的方法安装比较笨拙,故将安装步骤编写成一个简单shell脚本,并且能实现大部分需求 适合的系统版本:CentOS6.5-6.7 64位 安装的前提准备: mysql-5.6.28.tar.gz cmake-3.4.3.tar.gz nginx-1.8.1.tar.gz libgd-2.1.1.tar.bz2 ibiconv-1.14.tar.gz jpegsrc.v6b.tar.gz php-5.6.20.tar.bz2 将以上的源码包download下来放并

MySql一键安装shell脚本

#!/bin/bash #data:20171104 #QQ:654996537 #Name:Zhang #判断是否是root用户 if [ $(id -u) != "0" ]; then     echo " Not the root user! Try using sudo Command ! "     exit 1 fi #安装依赖包 yum -y groupinstall "Desktop Platform Development" y

关于CentOS-6.6-x86_64-bin-DVD安装vsftp问题

最近一直在搞服务器,于是自己就从新安装了虚拟机系统(安装包为CentOS-6.6-x86_64-bin-DVD1,CentOS-6.6-x86_64-bin-DVD2).其中遇见了很多的问题,搞得头大打了.其中有一个问题特别气人,在字符界面搞了一下午没搞出来,晚上在图形界面只用了几分钟. 问题是这样的.我安装好系统之后,对系统本身不是太了解,以为系统默认安装了vsftpd,就直接修改配置文件,结果提示没装,就一个gvfs-obexftp软件.我就yum install  vsftpd,结果提示

一键安装lnmp脚本(包括软件版本)

直接上脚本:附件也包含脚本 #!/bin/bash yum -y install make apr* autoconf automake curl-devel gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd  kernel keyutils  patch  perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyut