1. #!/bin/bash
  2. #vsftp install
  3.  
  4. . /etc/rc.d/init.d/functions
  5.  
  6. users=/etc/vsftpd/vftpuser.txt
  7. login=/etc/vsftpd/vftpuser.db
  8. generate_db="db_load -T -t hash -f $users $login"
  9. virtual_user_config=/etc/vsftpd/vuser_conf
  10. virtual_user_home=/data/www
  11. guest_username=www
  12.  
  13. fanghuoqiang(){
  14. firewall-cmd --permanent --zone=public --add-service=ftp
  15. firewall-cmd --reload
  16. }
  17.  
  18. touch /etc/vsftpd/vftpuser.txt
  19.  
  20. install_vsftpd(){
  21. setenforce
  22. yum -y install db4-utils
  23. yum -y install vsftpd
  24. systemctl enable vsftpd
  25.  
  26. useradd -s /sbin/nologin ${guest_username}
  27.  
  28. mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
  29. cat >/etc/vsftpd/vsftpd.conf<<EOF
  30. anonymous_enable=NO
  31. local_enable=YES
  32. write_enable=YES
  33. local_umask=
  34. dirmessage_enable=YES
  35. xferlog_enable=YES
  36. connect_from_port_20=YES
  37. pasv_enable=YES
  38. pasv_min_port=
  39. pasv_max_port=
  40. xferlog_std_format=YES
  41. listen=YES
  42. pam_service_name=vsftpd
  43. userlist_enable=YES
  44. tcp_wrappers=YES
  45.  
  46. chroot_local_user=YES
  47. chroot_list_enable=YES
  48. chroot_list_file=/etc/vsftpd/chroot_list
  49.  
  50. pam_service_name=vsftpd
  51. guest_enable=YES
  52. guest_username=${guest_username}
  53. user_config_dir=/etc/vsftpd/vuser_conf
  54. allow_writeable_chroot=YES
  55. EOF
  56.  
  57. mkdir /etc/vsftpd/vuser_conf
  58. mkdir /etc/vsftpd/chroot_list
  59.  
  60. echo 'auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser' > /etc/pam.d/vsftpd
  61. echo 'account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser' >> /etc/pam.d/vsftpd
  62.  
  63. touch /etc/vsftpd/vftpuser.txt
  64.  
  65. systemctl restart vsftpd
  66. [ $? -eq ]&&action $"Install vsftp:" /bin/true||action $"Install vsftp:" /bin/false
  67. iptables -A INPUT -p tcp --dport : -j ACCEPT
  68. iptables-save >/etc/sysconfig/iptables
  69. }
  70.  
  71. add_user(){
  72. mkdir -p /data/www/$
  73. not_enough_parameter=
  74. retval=
  75.  
  76. if [ "$#" -ne ]; then
  77. echo "usage:`basename $0` <useradd> <user_name> <password>."
  78. exit $not_enough_parameter
  79. fi
  80.  
  81. if grep -q "$1" "$users"; then
  82. passwd=$(sed -n "/$1/{n;p;}" "$users")
  83. if [ "$passwd" = "$2" ]; then
  84. echo "the user $1 already exists."
  85. exit $retval
  86. else
  87. echo "updating $1's password ... "
  88. sed -i "/$1/{n;s/$passwd/$2/;}" "$users"
  89. eval "$generate_db"
  90. exit $retval
  91. fi
  92. fi
  93.  
  94. for i in "$1" "$2"
  95. do
  96. echo "$i" >> "$users"
  97. done
  98.  
  99. eval "$generate_db"
  100.  
  101. cat >> "$virtual_user_config"/"$1" <<EOF
  102. local_root=$virtual_user_home/$
  103. write_enable=YES
  104. download_enable=YES
  105. anon_world_readable_only=NO
  106. anon_upload_enable=YES
  107. anon_mkdir_write_enable=YES
  108. anon_other_write_enable=YES
  109. local_umask=
  110. EOF
  111.  
  112. mkdir "$virtual_user_home"/"$1"
  113. chown $guest_username "$virtual_user_home"/"$1"
  114.  
  115. echo "==========$users============"
  116. cat $users
  117. }
  118.  
  119. case "$1" in
  120. 'install')
  121. install_vsftpd
  122. echo '----------------------------'
  123. echo '----------------------------'
  124. rpm -q vsftpd
  125. echo " "
  126. whereis vsftpd
  127. ;;
  128. 'useradd')
  129. add_user $ $
  130. echo '----------------------------'
  131. echo '----------------------------'
  132. rpm -q vsftpd
  133. echo " "
  134. whereis vsftpd
  135. ;;
  136. *)
  137. echo "usage: $0 {install|useradd}"
  138. exit
  139. ;;
  140. esac

Centos7上vsftp脚本--> sh vsftp.sh 用户名 密码 --> sh vsftp.sh install的更多相关文章

  1. Centos7上安装使用locate

    centos7上默认没有locate命令,需先安装locate yum install mlocate 注意是mlocate,如果是yum install locate系统会提示没有安装包 安装完成后 ...

  2. centos7中启动tomcat提示bash: tomcat8.0.39/bin/startup.sh: 权限不够

    问题描述: centos7中启动tomcat提示bash: tomcat8.0.39/bin/startup.sh: 权限不够 解决方案:先进入bin目录 [root@localhost/]# cd ...

  3. Linux学习笔记之Linux shell脚本运行出现问题:bash: ./test: bin/sh: bad interpreter: No such file or directory

    问题: 在Linux系统中使用“vi test.sh”命令创建.sh文件,保存文件(:wq)并赋予权限(chmod +x test.sh)后,执行(./test.sh),出现问题:“bash: ./t ...

  4. (转)Centos7上部署openstack ocata配置详解

    原文:http://www.cnblogs.com/yaohong/p/7601470.html 随笔-124  文章-2  评论-82  Centos7上部署openstack ocata配置详解 ...

  5. centos7上部署dubbo管理控制台dubbo-admin

    centos7上部署dubbo管理控制台dubbo-admin 1 准备工作 服务器:系统centos7, 内存4G, 存储60G, ip 192.168.159.128 软件环境: 安装有jdk1. ...

  6. centos7上安装iptables

    centos7上安装iptables的步骤 注意:CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #安装iptables ...

  7. centos7上部署新版 jumpserver 跳板机服务

    CentOS 7 建议在一个纯净的 centos7上进行下面的安装部署 关闭 selinux 和防火墙 [root@jumpserver ~]# setenforce 0 [root@jumpserv ...

  8. centos7上安装zookeeper

    centos7上安装zookeeper 1 准备工作 1.准备服务器,本次安装采用 centos7系统.内存2G.存储60G的虚拟机服务器一台: 2.服务器安装java环境: 参考文章<cent ...

  9. Centos7上以RPM包方式安装Oracle 18c XE

    Centos7上以RPM包方式安装Oracle 18c XE 安装阿里云 YUM 源 https://opsx.alibaba.com/mirror?lang=zh-CN 一.安装oracle数据库 ...

  10. 在 CentOS7 上安装 zookeeper-3.4.9 服务

    在 CentOS7 上安装 zookeeper-3.4.9 服务 1.创建 /usr/local/services/zookeeper 文件夹: mkdir -p /usr/local/service ...

随机推荐

  1. #6278. 数列分块入门 2(询问区间内小于某个值 xx 的元素个数)

    题目链接:https://loj.ac/problem/6278 题目大意:中文题目 具体思路:数列分块模板题,对于更新的时候,我们通过一个辅助数组来进行,对于原始的数组,我们只是用来加减,然后这个辅 ...

  2. RabbitMQ应用场景

    1.背景 RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现. 2.应用场景 2.1异步处理 场景说明:用户注册后,需要发注册邮件和注册短信, ...

  3. python读取两个文件并且判断是否一致

    ''' 判断两个文件是否相同,如果不同请指出第几行不相同 ''' def f1vsf2(name1,name2): f1 = open(name1) f2 = open(name2) count = ...

  4. Matlab 读取 ROS bag 文件指定消息数据

    近期在接触Ros的时候遇到了一些问题,如何将rosbag中的信息提取出来进行进一步处理呢? 如三维点位置信息,视频信息(如果有的话)等等. 我采用的是MATLAB 读取bag信息 filepath=f ...

  5. webstorm的快捷键总结

    ctrl+shift+f 可以在项目和模块中的文件中查找特定字符串 shift键连续敲一下,可以在项目和模块中查找特定的文件 ctrl+d  复制当前行并粘贴到下一行 ctrl+shift+上下方向键 ...

  6. Mongoose简介

    Mongoose 官网地址:http://mongoosejs.com/   ,Mongoose 为node.js提供了优雅的,针对mongodb的ODM(Object Document Mappin ...

  7. 递归求i^2的和

    题目描述: 用递归方法求f(n)=累加i^2,(i=1~n) #include<iostream> double fac(int n){ double s; if(n==1) s=1; e ...

  8. linux中shell变量$#,$@,$0,$1,$2的含义解释 (转载)

    变量说明: $$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值)$-使用Set命令设定的Flag一览$*所有参数列表 ...

  9. [PHP]session回收机制及php.ini session生命期

    由于PHP的工作机制,它并没有一个daemon线程,来定时地扫描session信息并判断其是否失效.当一个有效请求发生时,PHP会根据全局变量 session.gc_probability/sessi ...

  10. Codeforces 576E Painting Edges [分治,并查集]

    洛谷 Codeforces 建议阅读这篇博客作为预备.无耻地打广告 思路 与bzoj4025很相似,思路也差不多,可以看上面那篇博客. 仍然是用二分图的充要条件:没有奇环. 然而这题难在每条边的存在时 ...