#!/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. Print Article(斜率DP入门+单调队列)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3507 题目大意:给你n个数,然后问你怎么分割当前的这n个数位那几组,使得每一组的权值加起来最大.每一组 ...

  2. mysql 架构 ~ MGR 与PXC的对比

    一 简介 MGR和PXC的对比 二  WriteSet1 定义 是组件对于写节点应用事务生成binlog的再封装,用来验证其他节点的事务冲突 PXC构成key db_table_组件值data bin ...

  3. 找出程序GasMileage中的哪一行与下列叙述相对应:

    找出程序GasMileage中的哪一行与下列叙述相对应: a.通知程序将使用Scanner类   import java.util.Scannner; b.创建一个Scanner类的对象   Scan ...

  4. NOIP2018D1T1 铺设道路

    原题:NOIP2013D1T1 积木大赛 题目地址:P5019 铺设道路 思路:玄学瞎搞 将每块区域插入一个小根堆,这里的小根堆用优先队列实现,即运用一个 \(pair\) , \(first\) 为 ...

  5. 【转】Linux下查看系统配置

    [转]Linux下查看系统配置 CPU 1. lscpu:显示cpu架构信息 [xxx@localhost ~]$ lscpu Architecture: x86_64 CPU op-mode(s): ...

  6. Shell-自动建立全国城市

    Code: #!/bin/bash function mkdirFun() { if [ ! -d $1 ];then mkdir -p $1 fi } filename=city1.txt date ...

  7. Epoll模型【转】

    转自:https://www.cnblogs.com/tianhangzhang/p/5295972.html 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率.因为 ...

  8. 【windows下进程searchfilterhost.exe分析】

    searchfilterhost.exe [进程信息] 进程文件: searchfilterhost.exe 进程名称: n/a 英文描述: searchfilterhost.exe is a pro ...

  9. 工程师死绝的世界答案-python3版

    エンジニアが死滅シタ世界|アンドロイドとふたりぼっちで生きろ. 荒れ果てた警察署 [MISSION LEVEL: D] 难度D 题目要求: あなたは 0 から 9 の数字を 3 つ入力すると開く扉を開 ...

  10. c++学习day3(字符串_指针)

    1.字符串 1)三种形式 用双引号括起来的字符串常量:结尾会有一个'\0'字符,但该字符只占据字节数,不会使字符串长度增加. 存放于字符数组中,以'\0'字符结尾:数组元素个数应至少为字符串长度+1 ...