CentOS6一键安装vsftp脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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




本文出自 “我在,我执。” 博客,请务必保留此出处http://66332211.blog.51cto.com/6002782/1982023

以上是关于CentOS6一键安装vsftp脚本的主要内容,如果未能解决你的问题,请参考以下文章

Centos6.5下的vsftp安装配置

centos6—lnmp一键安装脚本

vsftp脚本

httpd 一键编译安装脚本(centos6&7_httpd2.2&2.4)

CentOS6.x生产环境下一键安装mono+jexus的脚本,自启动,带服务,版本号自控

centos6.5 hadoop2.7 _64位一键安装脚本有问题加我Q直接问