#!/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. Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader;

    运行tomat  报错: Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Lj ...

  2. DeepLearning.ai-Week3-Autonomous driving-Car detection

    1 - Import Packages import argparse import os import matplotlib.pyplot as plt from matplotlib.pyplot ...

  3. 第四节:tensorflow图的基本操作

    基本使用 使用图(graph)来表示计算任务 激活会话(Session)执行图 使用张量(tensor)表示数据 定义变量(Variable) 使用feed可以任意赋值或者从中获取数据,通常与占位符一 ...

  4. Linux C 读取文件夹下所有文件(包括子文件夹)的文件名【转】

    转自:https://www.cnblogs.com/xudong-bupt/p/3504442.html 本文:http://www.cnblogs.com/xudong-bupt/p/350444 ...

  5. JavaScript拼接html字符串时截断问题

    在项目中碰到一个问题,就是JavaScript拼接html标签时,里面特殊字符会有些问题,比如单引号截断配对,导致后面的内容不显示或显示错误.在此记录一下. 下面贴一段简化的代码,若有描述不清的地方还 ...

  6. 【转】Java的接口和抽象类

    对于面向对象编程来说,抽象是它的一大特征.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有很多相似的地方,又有很多不同的地方. 一.抽象类 在了解抽象类之前,先来了解一下抽象方 ...

  7. css3 弹性效果上下翻转demo

    最近扒了一个有弹性效果上下翻转demo 上图: 上代码: <!DOCTYPE html> <html lang="en"> <head> < ...

  8. ubuntu安装 opencv-3.4.3

    1 .官网(https://opencv.org/releases.html)下载下源码 opencv-3.4.3.zip 2.解压 unzip  opencv-3.4.3.zip 3.cmake c ...

  9. C#红绿状态灯

    1.在Label里 画圆,存在窗体刷新会丢失画. public void SetShowConnectStatus(Label lbl, bool isOk) { lbl.Text = "& ...

  10. javascript for循环 日期 select

    2016年12月28日 20:01:54 星期三 html: <a href="aaaa">AAAA</a> <a href="bbbb&q ...