# Version      : 1.0
# Author : 果子
# Date : -- ::
# Description : 只需要三步即可完成安装
# chmod a+x install_vsftpd.sh
# ./install_vsftpd install_server 安装相关服务
# ./install_vsftpd add_user 配置用户信息
# ./install_vsftpd start 启动服务
# Usage : 在浏览器或计算机地址中输入:ftp://192.168.0.1 即可访问,192.168.0.1为主机地址。
# More : 后续将增加一些安全性控制和批量创建用户
#
#
#!/bin/bash
#set -x #调试用
allow=YES
deny=NO
Sname=vsftpd
VFconf="/etc/vsftpd/vsftpd.conf"
VFstart="/etc/init.d/vsftpd"
VUser="/etc/vsftpd/vuser"
VUCdirectory="/etc/vsftpd/vuconf"
VFpam="/etc/pam.d/vsftpdd"
VFDirectory="/var/www/html"
DB4=db4
DB4UTILS="db4-utils"
DB4DEVEL="db4-devel"
sys_tem="/lib64"
http=apache
#----------主配置文件--------------
main_config()
{
if [ -d $sys_tem ];then
echo "Your system is 64bit"
systems=$sys_tem
else
echo "Your system is 32bit"
systems=/lib
fi
# touch $VFpam
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/g' $VFconf
sed -i 's/#chown_uploads=YES/chown_uploads=NO/g' $VFconf
sed -i 's/#xferlog_file/xferlog_file/g' $VFconf
sed -i 's/#async_abor_enable=YES/async_abor_enable=YES/g' $VFconf
sed -i 's/#ascii_upload_enable=YES/ascii_upload_enable=YES/g' $VFconf
sed -i 's/#ascii_download_enable=YES/ascii_download_enable=YES/g' $VFconf
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/g' $VFconf
sed -i 's/pam_service_name=vsftpd/pam_service_name=vsftpdd/g' $VFconf
{
echo "guest_enable=$allow"
echo "guest_username=$http"
echo "user_config_dir=$VUCdirectory"
echo "virtual_use_local_privs=$allow"
} >> $VFconf
touch $VFpam
{
echo "auth sufficient $systems/security/pam_userdb.so db=$VUser"
echo "account sufficient $systems/security/pam_userdb.so db=$VUser"
} > $VFpam
}
#------------用户配置-----------------------
user_config ()
{
Uname=$
userhome="local_root="
userworld="anon_world_readable_only="
userupload="anon_upload_enable="
usermkdir="anon_mkdir_write_enable="
userothen="anon_mkdir_write_enable="
userwrite="write_enable="
echo -e "\033[31;40m ===Now configure the config file=== \033[0m"
if [ -d $VUCdirectory ];then
echo "The directory $VUCdirectory exsits."
else
mkdir $VUCdirectory
fi
echo "Your want to configure user is :$Uname"
read -p "Please input user home directory(default $VFDirectory)" home_dir
if [ "x$home_dir" != "x" ]
then
VFDirectory=$home_dir
fi
echo "Your home directory is: $VFDirectory"
touch "$VUCdirectory/$Uname" && echo -e "\033[31;40mSuccess to configure file=== \033[0m"
{
echo "$userhome$VFDirectory"
echo "$userwrite$allow"
echo "$userworld$deny"
echo "$userupload$allow"
echo "$usermkdir$allow"
echo "$userothen$allow"
} > $VUCdirectory/$Uname
chown -R $http:$http $VFDirectory
chmod -R $VFDirectory
}
#----------------增加用户---------------------
add_user()
{
echo "start add user..."
while [ ]
do
isok=y
echo -n "Do you want to add user?"
read -p "[Y/N]:" ok
if [ "x$ok" = "x" ]
then
continue
elif [ "x$ok" = "xN" ]
then
echo "=============Finish add user============="
break
fi
isok=$ok
if [ "x$isok" != "xY" ]
then
echo "Error input! please input Y/N "
continue
else
read -p "Input username: " username
read -p "Input userpasswd: " userpasswd
echo "Your username is: $username"
echo "Your userpasswd is: $userpasswd"
{
echo "$username"
echo "$userpasswd"
} >> $VUser
user_config $username
fi
done
db_load -T -t hash -f $VUser $VUser.db
}
#-----------------安装服务---------------------
install_server()
{
rpm -q $Sname
if [ $? -eq ];then
echo "vsftpd service has installed. "
else
yum install -y $Sname
fi
yum -y install "db4*"
}
#------------------------------------------------
case $ in
install_server)
echo "start install $Sname:"
install_server
main_config
;;
add_user)
add_user
;;
restart)
$VFstart restart
;;
start)
$VFstart start
;;
stop)
$VFstart stop
;;
*)
echo "Usage: $0 install_server|add_user|restart|start|stop"
exit
esac
exit

保存为 OneClickFtp.sh

具体操作看开头的注释

CentOS一键ftp的更多相关文章

  1. centos一键优化脚本

    centos一键优化脚本:细节:http://oldboy.blog.51cto.com/2561410/1336488网络状态优化:http://oldboy.blog.51cto.com/2561 ...

  2. centos 安装FTP server详情(转)

    centos 安装FTP server详情 分类: linux 2013-12-27 16:45 227人阅读 评论(0) 收藏 举报 我们这里以安装vsftpd 服务器端为例子: 1.进入到cent ...

  3. Centos 安装 FTP

    安装教程:   基于 CentOS 搭建 FTP 文件服务 搭建完成后,使用windows文件夹访问FTP报错,请确保输入的文件名是否正确,并且您有权访问此文件. 先确认ftp服务正常 修改:   设 ...

  4. centos启用ftp功能

    1.安装vsftpd组件,安装完后,有/etc/vsftpd/vsftpd.conf 文件,用来配置,还有新建了一个ftp用户和ftp的组,指向home目录为/var/ftp,默认是nologin(不 ...

  5. CentOS 安装ftp

    Linux安装ftp组件 1 安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. [root@bogon ~]# yum -y insta ...

  6. 阿里云centos配置ftp和svn全过程

    1.下载xshell 2.登录centos 3.安装vsftpd [root@xxx]# yum install vsftpd //安装vsftpd [root@xxx]# chkconfig vsf ...

  7. centos架设FTP服务器

    1.安装vsftp在这里,我们架设的是虚拟用户,所谓虚拟用户就是没有使用真实的帐户,只是通过某种手段达到映射帐户和设置权限的目的.yum -y install vsftpd在CentOS中,这样就可以 ...

  8. Centos开启FTP及用户配置

    vsftpd作为FTP服务器,在Linux系统中是非常常用的.下面我们介绍如何在centos系统上安装vsftp. 什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...

  9. centos 安装ftp服务器

    CentOS下搭建FTP服务器简单记录. 1.安装vsftpd yum install vsftpd 2.编辑iptablesvi /etc/sysconfig/iptables -A INPUT - ...

随机推荐

  1. c++ 在windows下获取时间和计算时间差的几种方法总结

    http://blog.csdn.net/caimagic/article/details/50696609 我用的是GetTickCount(), 获取到的是毫秒.

  2. 【学习笔记】Struts2之配置处理结果

        Action只是Struts2控制器的一部分,所以它不能直接生成对浏览者的响应.Action只负责生成响应的视图组件,通常是JSP页面,而Action会为JSP页面提供显示数据.     Ac ...

  3. linux -目录结构

    摘自:http://www.comptechdoc.org/os/linux/usersguide/linux_ugfilestruct.html 这个目录结构介绍是我目前看到介绍最全的,有时间在翻译 ...

  4. pywin32 创建一个窗口

    import win32con,win32gui class MyWindow(): def __init__(self): #注册一个窗口类 wc = win32gui.WNDCLASS() wc. ...

  5. Linux C 收藏

    某招聘要求:熟悉高性能分布式网络服务端设计开发,熟悉epoll.多线程.异步IO.事件驱动等服务端技术: <UNIX环境高级编程(第3版)>apue.h等源码文件的编译安装 <UNI ...

  6. 使用pm2管理nodejs应用

    PM2 is a production process manager for Node.js applications with a built-in load balancer. It allow ...

  7. html页面读取PDF小案例

    html页面 引用<script src="js/pdfobject.js" type="text/javascript" charset="u ...

  8. git clone出现的error: The requested URL returned error: 401 Unauthorized

    error: The requested URL returned error: 401 Unauthorized while accessing https://git.oschina.net/.. ...

  9. JavaScript数组去重

    第一种方法: 思路: 1.创建一个新的数组存放结果 2.创建一个空对象, 3.将数组中的元素作为空对象的属性并对其赋值,每次取出一个元素与对象进行对比,然后到对象中去访问这个属性, 如果能访问到值,则 ...

  10. <hr>标签不止创建html水平线也可以画圆噢

    看到上面这张图,第一反应是用photoshop类似作图软件画出来的,但那是华丽丽的错觉.一个简单的<hr>标签就能完成漂亮的效果,而不仅仅是创建html水平线.想知道怎么实现吗?Let's ...