需求: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