CentOS6.X部署Vsftpd服务脚本

entOS6.X部署Vsftpd服务脚本


Vsftpd部署脚本

脚本已经在CentOS 6.X x86_64的系统上测试过了!



#!/bin/bash

# CentOS 6.X x86_64

rpm -q vsftpd

if [ $? -eq 0 ];then

echo "vsftpd已经安装,请执行该命令rpm -e vsftpd卸载vsftpd"

exit 1

fi

if [ -d "/etc/vsftpd" ];then

mv /etc/vsftpd{,.$(date +%Y%m%d%H%M)}

fi

yum install -y vsftpd db4 db4-devel

mv /etc/vsftpd/vsftpd.conf{,.$(date +%Y%m%d%H%M)}

# 生成vsftpd配置文件

cat << 'EOF' >> /etc/vsftpd/vsftpd.conf

listen=YES

listen_port=21

local_enable=YES

write_enable=NO

anonymous_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES

guest_enable=YES

guest_username=ftp

user_config_dir=/etc/vsftpd/ftp

ftpd_banner=welcome vsftp!

pam_service_name=vsftpd.pam

vsftpd_log_file=/var/log/vsftpd.log

dual_log_enable=YES

xferlog_enable=YES

local_root=/var/ftp

EOF

# 生成vsftpd的认证文件

cat << 'EOF' >> /etc/pam.d/vsftpd.pam

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

EOF

# 生成vsftpd虚拟用户的账号和密码

USER=ftpuser

PASS=$(echo $RANDOM | md5sum | head -c 20)

echo -e "$USER\n$PASS" > /etc/vsftpd/logins.txt

mkdir /etc/vsftpd/ftp

# 为生成的用户添加一个独立的配置文件

cat << 'EOF' >> /etc/vsftpd/ftp/${USER}

write_enable=YES

anon_world_readable_only=NO

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

anon_upload_enable=YES

anon_umask=022

file_open_mode=0777

guest_enable=YES

guest_username=ftp

local_root=/tmp

EOF

# 每次填加新的虚拟用户后执行的命令

# /etc/vsftpd/logins.txt是记录虚拟用户的账号和密码

# 添加新的虚拟用户在文件末尾追加账号和密码就可以了,奇数是用户,偶数是密码

echo "db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db" > /etc/vsftpd/cmd

chmod u+x /etc/vsftpd/cmd

/etc/vsftpd/cmd

chkconfig vsftpd on

/etc/init.d/vsftpd start

echo "####################################"

echo "####################################"

echo "####################################"

echo "####################################"

echo "Config Files: /etc/vsftpd/vsftpd.conf"

echo "Pam Files: /etc/pam.d/vsftpd.pam"

echo "Db Files: /etc/vsftpd/vsftpd_login.db"

echo "User/Password Files: /etc/vsftpd/logins.txt"

echo "Create User/Password Db Files Command: bash /etc/vsftpd/cmd"

echo "User/Password: $USER/$PASS"

echo "Vsftpd Install OK!"

echo "####################################"

echo "####################################"

echo "####################################"

echo "####################################"

使用方法

运行脚本:


1

[root@iZ2583c3psrZ ~]# bash vsftpd.sh

添加虚拟用户:


1

2

3

4

[root@iZ2583c3psrZ ~]# vim /etc/vsftpd/logins.txt

#奇数行是用户名,偶数行是密码

testftp

test2016!^&

将logins.txt的用户生成为虚拟用户


1

[root@iZ2583c3psrZ ~]# /etc/vsftpd/cmd

登录测试,用户名为:testftp,密码为:test2016!^&

相关文章

linux下开机自启: 在/etc/init.d目录下新建文件elasticsear...
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以...
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用...
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一...
设置时区(CentOS 7) 先执行命令timedatectl status|grep &...
vim&#160;/etc/sysconfig/network-scripts/ifcfg-eth0 B...