CentOS6.X部署Vsftpd服务脚本
2016-09-09 10:44
375 查看
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!^&
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!^&
相关文章推荐
- CentOS 6 一键部署vsftpd服务脚本
- 自动化部署服务脚本shell脚本
- 一个Linux下自动部署Web服务的脚本
- 内网环境NTP服务及时间同步(CentOS6.x)配置和部署
- Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则
- vsftpd服务搭建与配置脚本
- vsftpd的不同安装方式及服务控制脚本
- dubbo基础篇三_linux部署dubbo服务以及shell脚本编写
- java jar服务部署脚本编写
- CentOS7部署vsftpd服务
- 游戏服务部署脚本
- saltstack的探索-演示部署文件和脚本安装zabbix-agent服务
- 自动部署ftp服务脚本
- python将linux系统下的war包自动部署到winserver2008tomcat服务下的自动化脚本
- 配置FTP服务(二):vsftpd部署和优化
- 【Vsftpd】添加到服务及启动脚本
- 自动部署dhcp服务 脚本
- 自动下载源码_并编译_打包_部署_重启服务的Shell脚本
- 自动化部署服务shell脚本的应用
- [linux] shell脚本编程-ubuntu创建vsftpd服务