当前位置: 首页 > news >正文

centos 一键安装ftp 配置_CentOS6一键安装vsftp脚本

如果你想在你的Linux服务器上搭建一个安全、高性能、稳定性好的FTP服务器用于服务器文件管理,那么vsftpd可能是你的首选应用。

下面我分享一个vsftp的一键安装脚本,以/data/www为根目录,www用户拥有目录读写权限为例。

一,使用方式

1,安装vsftpsh auto_install_vsftp.sh install

2,新建ftp用户sh auto_install_vsftp.sh useradd user password

二,auto_install_vsftp.sh脚本内容#!/bin/sh

#author: vim

#qq:82996821

#filename: auto_install_vsftp.sh

users=/etc/vsftpd/vftpuser.txt

login=/etc/vsftpd/vftpuser.db

generate_db="db_load -T -t hash -f $users $login"

virtual_user_config=/etc/vsftpd/vuser_conf

#ftp目录

virtual_user_home=/data/www

#拥有ftp目录权限的用户

guest_username=www

#Source function library

. /etc/rc.d/init.d/functions

install_vsftpd(){

setenforce 0

yum -y install db4-utils

yum -y install vsftpd

chkconfig vsftpd on

useradd -s /sbin/nologin ${guest_username}

mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

cat >/etc/vsftpd/vsftpd.conf<

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

pasv_enable=YES

pasv_min_port=60000

pasv_max_port=61000

xferlog_std_format=YES

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

pam_service_name=vsftpd

guest_enable=YES

guest_username=${guest_username}

user_config_dir=/etc/vsftpd/vuser_conf

EOF

mkdir /etc/vsftpd/vuser_conf

mkdir /etc/vsftpd/chroot_list

#i386 32位系统打开下列两行

#echo 'auth required pam_userdb.so db=/etc/vsftpd/vftpuser' > /etc/pam.d/vsftpd

#echo 'account required pam_userdb.so db=/etc/vsftpd/vftpuser' >> /etc/pam.d/vsftpd

#X64 64位系统打开下列两行

echo 'auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser' > /etc/pam.d/vsftpd

echo 'account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser' >> /etc/pam.d/vsftpd

touch /etc/vsftpd/vftpuser.txt

service vsftpd start

[ $? -eq 0  ]&&action $"Install vsftp:" /bin/true||action $"Install vsftp:" /bin/false

#开启防火墙,21连接端口,60000-61000为被动模式数据传输端口

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 60000:61000 -j ACCEPT

iptables-save >/etc/sysconfig/iptables

}

add_user(){

not_enough_parameter=56

retval=0

if [ "$#" -ne 2 ]; then

echo "usage:`basename $0`   ."

exit $not_enough_parameter

fi

if grep -q "$1" "$users"; then

passwd=$(sed -n "/$1/{n;p;}" "$users")

if [ "$passwd" = "$2" ]; then

echo "the user $1 already exists."

exit $retval

else

echo "updating $1's password ... "

sed -i "/$1/{n;s/$passwd/$2/;}" "$users"

eval "$generate_db"

exit $retval

fi

fi

for i in "$1" "$2"

do

echo "$i" >> "$users"

done

eval "$generate_db"

cat >> "$virtual_user_config"/"$1" <

#local_root=$virtual_user_home/$1

local_root=$virtual_user_home

write_enable=YES

download_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_umask=022

EOF

#mkdir "$virtual_user_home"/"$1"

#chown $guest_username "$virtual_user_home"/"$1"

chown $guest_username "$virtual_user_home"

echo "==========$users============"

cat $users

}

case "$1" in

'install')

install_vsftpd

;;

'useradd')

add_user $2 $3

;;

*)

echo "usage: $0 {install|useradd}"

exit 1

;;

esac

相关文章:

  • ribbon基于接口配置超时_feign的ribbon超时配置和hystrix的超时配置说明
  • 怎么把好几行弄成一行_怎么在word文档里把很多行一下合并成一行
  • controller不跳转页面的几个原因_为什么很多人30岁了,还不结婚,有这几个原因...
  • clob存base64文件存不进去_cephfs:文件的扩展属性xattr
  • 山地车中轴进水表现_求山地自行车各部位上油的方法。特别是中轴和花鼓
  • matlab建立ar时间序列模型_请教matlab下建立AR模型的问题(附代码)
  • jpg图片使用pil的resize后_Python Pillow 和 cv2 图片 resize 速度的比较
  • 小白学vb还是python_小白学 Python(6):基础运算符(下)
  • qt 表格中插入一行_表格中插入列,如何不影响其他表格,1.3%的人还不会?
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • l4168升级固件出错如何恢复_苹果 iOS 13 / iPadOS 官方测试版固件 IPSW 下载升级降级与恢复教程...
  • 时序约束优先级_如何写出时序收敛的代码
  • 移动端布局三种视口_移动端布局适配
  • 柱形图无数据可选中_让领导看呆!Excel多层柱形图来了
  • ios 监听一个控制器的属性_iOS控制器间跳转
  • python3.6+scrapy+mysql 爬虫实战
  • 「面试题」如何实现一个圣杯布局?
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【node学习】协程
  • Java 多线程编程之:notify 和 wait 用法
  • JDK 6和JDK 7中的substring()方法
  • Linux各目录及每个目录的详细介绍
  • springboot_database项目介绍
  • 后端_ThinkPHP5
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 我们雇佣了一只大猴子...
  • ​​​​​​​​​​​​​​Γ函数
  • ​如何在iOS手机上查看应用日志
  • #include到底该写在哪
  • (06)金属布线——为半导体注入生命的连接
  • (2)MFC+openGL单文档框架glFrame
  • (4) PIVOT 和 UPIVOT 的使用
  • (arch)linux 转换文件编码格式
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (多级缓存)多级缓存
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (四)汇编语言——简单程序
  • (正则)提取页面里的img标签
  • (转) Face-Resources
  • ./configure,make,make install的作用(转)
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .skip() 和 .only() 的使用
  • ??eclipse的安装配置问题!??
  • @Autowired自动装配
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • []指针
  • [16/N]论得趣
  • [20171113]修改表结构删除列相关问题4.txt
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心