需求:yum安装vsftpd后,减少配置环节

软件包:链接:http://pan.baidu.com/s/1jIyZrRS 密码:q9uu

思路:

1、yum安装vsftpd

2、使用脚本替代手工进行配置部署



[root@linux-node7 ~]# cat vsftpd.sh 

#!/bin/bash

#仅适用于CentOS6.x 64位版本

#

. /etc/init.d/functions

dir=/root/test

file1=/root/test/ftp.txt

file2=/root/test/ftppam.txt

file3=/root/test/updateadmin.txt

vuser_dir=/etc/vsftpd/vuser_conf

local_root=/data/soft

##脚本存放路径

[ ! -d $dir ] && {

mkdir $dir

cd $dir

} || cd $dir

wget http://172.2.0.68/ftp.txt

wget http://172.2.0.68/ftppam.txt

wget http://172.2.0.68/updateadmin.txt

sleep 3

yum install -y vsftpd

sleep 2

cat $file1 > /etc/vsftpd/vsftpd.conf

##创建虚拟用户

echo "[guest_username=ftp]" > /etc/vsftpd/chroot_list

#db加密

read -p "请输入新的ftp用户(如果直接回车则创建默认账号:ftpuser):" ftpname

read -p "请输入新的ftp密码(如果直接回车则创建默认密码:123456):" ftppass

ftpname=${ftpname:-ftpuser}

ftppass=${ftppass:-123456}

echo "$ftpname" >> /etc/vsftpd/ftpuser.txtx

echo "$ftppass" >> /etc/vsftpd/ftpuser.txtx

#db加密

db_load -T -t hash -f /etc/vsftpd/ftpuser.txtx /etc/vsftpd/vftpuser.db

#安全机制pam.d配置

mv /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak

[ -f $file2 ] && cat $file2 > /etc/pam.d/vsftpd || exit 7

##定义虚拟用户

[ -d $vuser_dir ] && cd $vuser_dir || mkdir -p $vuser_dir

#添加虚拟用户账号信息

[ -f $file3 ] && cat $file3 > /etc/vsftpd/vuser_conf/$ftpname || exit 9

##开启服务

service vsftpd start

chkconfig vsftpd on

##完成

[ ! -d $local_root ] && {

mkdir $local_root -p

chown -R ftp:ftp $local_root

}

###########################################################################################

[root@linux-node7 test]# cat ftppam.txt 

auth      required     pam_userdb.so db=/etc/vsftpd/vftpuser

account   required     pam_userdb.so db=/etc/vsftpd/vftpuser

###########################################################################################

###########################################################################################

[root@linux-node7 test]# cat updateadmin.txt 

local_root=/data/soft

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

anon_umask=022

###########################################################################################


###########################################################################################

[root@linux-node7 test]# cat ftp.txt 

anonymous_enable=NO

local_enable=YES

write_enable=NO

local_umask=022

anon_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

#chown_uploads=YES

#chown_username=whoever

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

#idle_session_timeout=600

#data_connection_timeout=120

#nopriv_user=ftpsecure

#async_abor_enable=YES

#ascii_upload_enable=YES

#ascii_download_enable=YES

#deny_email_enable=YES

# (default follows)

#banned_email_file=/etc/vsftpd/banned_emails

# users to NOT chroot().

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd/chroot_list

#ls_recurse_enable=YES

listen=YES

#listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

userlist_deny=YES

guest_enable=YES

guest_username=ftp

user_config_dir=/etc/vsftpd/vuser_conf

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=30999