#!/bin/bash
#本脚本为自动化安装vsftp,使用虚拟用户认证登录ftp上传下载文件
echo ======================================================
read -p "请输入ftp用户:" ftp_user
if [ `echo ${#ftp_user}` -eq ];then
ftp_user=dyc
fi
echo ======================================================
read -p "请输入ftp密码:" ftp_passwd
if [ `echo ${#ftp_passwd}` -eq ];then
ftp_passwd=dyc
fi
echo ======================================================
read -p "请输入用户数据存放目录:" ftp_data
if [ `echo ${#ftp_data}` -eq ];then
ftp_data=/data/ftp
fi
echo ======================================================
#vsftpd软件
yum -y install vsftpd
#生成虚拟用户认证数据文件
yum -y install db4-utils
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
#配置vsftpd
cat > /etc/vsftpd/vsftpd.conf<<EOF
listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/vsftpd_user_conf
pam_service_name=vsftpd.vu
local_enable=YES
EOF
cd /etc/vsftpd
#创建用户文件
touch /etc/vsftpd/user.txt
echo $ftp_user >> /etc/vsftpd/user.txt
echo $ftp_passwd >> /etc/vsftpd/user.txt
#将用户密码生成密匙文件
db_load -T -t hash -f user.txt /etc/vsftpd/vsftpd_login.db
chmod /etc/vsftpd/vsftpd_login.db
touch /etc/pam.d/vsftpd.vu
#区别系统是32位还是64位
if ls -l /|grep -c lib64;then
echo "auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login">> /etc/pam.d/vsftpd.vu
echo "account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login">> /etc/pam.d/vsftpd.vu
else
echo "auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login">> /etc/pam.d/vsftpd.vu
echo "account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login">> /etc/pam.d/vsftpd.vu
fi
#限制虚拟用户切换目录
touch /etc/vsftpd/chroot_list
echo $ftp_user >>/etc/vsftpd/chroot_list
#配置虚拟用户的配置文件
mkdir -p /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
cat > $ftp_user<<EOF
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF
echo "local_root="$ftp_data>>$ftp_user
#创建数据目录
mkdir -p $ftp_data
chown -R ftp:root $ftp_data
chmod o+rw $ftp_data
/etc/init.d/vsftpd restart

摘自:http://blog.51cto.com/lovesource/1574023

ftp的自动部署以及添加虚拟账户的脚本的更多相关文章

  1. git管理和自动部署项目

    当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来 ...

  2. (二)跟我一起玩Linux网络服务:BIND的自动部署(附上完整的代码)

    2015-03-24   如果看了我之前写的文章 DNS服务——BIND(/etc/named.conf./var/named)设置实现和解释,再来看这篇文章,你会发现部署BIND是件很简单的事情 如 ...

  3. linux开发脚本自动部署及监控

    linux开发脚本自动部署及监控 开发脚本自动部署及监控一.编写脚本自动部署反向代理.web.nfs:要求:1.部署nginx反向代理三个web服务,调度算法使用加权轮询: #!/bin/sh ngx ...

  4. hexo自动部署到git、ftp(虚拟主机等)、云服务器的方式

    自动部署很有用,当你写完文章后,直接使用hexo d就可以自动更新你的网站了 部署到git 首先你需要在你的blog下安装git deployer插件:npm install hexo-deploye ...

  5. centos6.5安装vsftp服务并配置虚拟账户ftp

      当我们的用户量越来越大时,继续创建更多的系统用户是不明智的,这时就需要为vsftpd创建虚拟账户,但vsftpd虚拟账户的数据库要保存在Berkeley DB格式的数据文件中,所以需要安装db4- ...

  6. FTP虚拟账户

    部署一个内网FTP服务器 为了解决公司员工文件存储和下载的需求.要求部署内部FTP服务器,员工可以通过自己的账号的权限对FTP进行操作. 1)公司公共文件可以通过匿名下载 2)公司财务部.商务部.行政 ...

  7. CentOS平台部署vsftp(基于虚拟用户)

    1. 安装FTP 1 2 [root@task ~]# yum install vsftpd –y [root@task ~]# chkconfig vsftpd on          # 配置开机 ...

  8. Jenkins 实现前端自动打包,自动部署代码及邮件提醒功能

    在之前的公司,我们前端使用webpack构建项目,项目构建完成后,我们会使用ftp或linux的一些命令工具上传我们的文件到服务器上,这种方式虽然是可以,但是最近面试的时候,人家会问我前端如何部署项目 ...

  9. Github webhooks 自动部署博客文章,使用总结【含视频】

    作者:小傅哥 博客:https://bugstack.cn 原文:https://mp.weixin.qq.com/s/VtTHUfyiITNSoGy052jkXQ 沉淀.分享.成长,让自己和他人都能 ...

随机推荐

  1. docker安装问题:E: Package 'docker-ce' has no installation candidate

    我的环境是在vm虚拟机中,Ubuntu17.04 前期安装步骤不过多介绍,下面这个博客就很好 ubuntu16.10安装docker17.03.0-ce并配置国内源和加速器 http://www.cn ...

  2. 前端 - jsonp 跨域ajax

    jsonp 跨域ajax原理: 浏览器同源策略限制 如何解决同源策略限制: 方式一: 利用创建script块,在其中执行src属性为 远程url 异域 用函数(返回值) 的形式返回参数 方式二: jq ...

  3. 20165237 预备作业3 Linux安装及学习

    Linux安装及学习 安装 对操作系统略知一二的我,按照老师发的基于VirtualBox虚拟机安装Ubuntu图文教程慢慢一步步往下做,虽然中间有些小困难,但最终都得以解决,安装成功. 遇到的小困难: ...

  4. CF1095E Almost Regular Bracket Sequence

    题目地址:CF1095E Almost Regular Bracket Sequence 真的是尬,Div.3都没AK,难受QWQ 就死在这道水题上(水题都切不了,我太菜了) 看了题解,发现题解有错, ...

  5. LwIP Application Developers Manual4---传输层之UDP、TCP

    1.前言 本文主要讲解传输层协议UDP TCP 2.UDP 2.1 UDP from an application perspective 2.2 UDP support history in lwI ...

  6. 用ethtool 命令解决Linux 网卡丢包【转】

    转自:https://blog.csdn.net/chengxuyuanyonghu/article/details/73739516 生产中有一台Linux设备并发比较大,droped包比较多,尤其 ...

  7. Python运维开发基础05-语法基础【转】

    上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python # -*- coding:utf-8 -*- # author:Mr.chen import os,time Tag = ...

  8. 用UDP实现聊天功能

    // SK003Dlg.cpp : implementation file //   #include "stdafx.h" #include "SK003.h" ...

  9. 消息队列:JMS之基本概念介绍

    摘要:The Java Message Service (JMS) API is a messaging standard that allows application components bas ...

  10. selenium——获取元素的尺寸、文本信息、元素的属性、元素是否可见

    [is_disabled 可以用来检查元素是否存在]