热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vsftpd添加虚拟账户的shell脚本

建立了vsftpd之后添加用户总是要做很多操作,写了一个shell,自己用,也就没有处理得很详细。共享给网友们,希望对大家有用。#!/bin/bash##Date:2008.8.20#author:lastbus#function:addvirtualvsftpduser

建立了vsftpd之后添加用户总是要做很多操作,写了一个shell,自己用,也就没有处理得很详细。共享给网友们,希望对大家有用。

#!/bin/bash
#==========================================
#Date:2008.8.20
#author:lastbus
#function:add virtual vsftpd user
#==========================================
U=vftpuser #vsftpd的对应的用户名
G=vftpuser #vsftpd的对应的用户名所属的组

v_usershadow_loc="/etc/vsftpd/user.txt" #存放用户名和密码的文件
v_userdb_loc="/etc/vsftpd/vuser.db" #pam认证DB
v_user_conf_loc="/etc/vsftpd/vsftpd_user_conf/" #用户配置文件存放目录
v_dir="/other/vftpuser/" #ftp根目录,所有用户将以自己的用户名作为主目录,直接存放于此目录之下

privileges="anon_world_readable_only=no anon_mkdir_write_enable=YES write_enable=YES anon_upload_enable=YES anon_other_write_enable=YES" #基础的权限集合

usernameok=0 #用户名验证结果
passwordok=0 #密码与确认密码是否相等

read -p "Please enter username:" username

Checkusername ( )
{
 for user in `ls ${v_user_conf_loc}` ;do
  if [ "${username}" = "${user}" ] ;then
    usernameok=0
    echo "User name exsit"
    exit
  fi
 done
 usernameok=1
}
Checkusername

read -p "Please enter password:" password
read -p "Please confirm the password:" confirm_passpord

Checkpassword ( )
{
if [ "${password}" = "${confirm_passpord}" ] ;then
 passwordok=1
else
 echo "confirm password error"
fi
}

Setprivilege ( )
{
  userdir="${v_dir}${username}"
  usercOnf="${v_user_conf_loc}${username}"
  mkdir ${userdir}
  chown -R "${U}"."${G}" ${userdir}
  touch ${userconf}
  chmod 644 ${userconf}
  echo "local_root=/other/vftpuser/${username}">>${userconf}
  for privilege in $privileges ;do   
   echo ${privilege}   
   read -n1 -p "Add this privilege?[Y/N]" confirm
   if [ "$confirm" = "y" ] ;then
    echo $privilege>>${userconf}
   elif [ "$confirm" = "n" ] ;then
    echo "your choice is N";
   else
    echo "Error"
   fi
  done     
}
Addusertodb ( )
{
 echo $username>>${v_usershadow_loc}
 echo $password>>${v_usershadow_loc}
 db_load -T -t hash -f ${v_usershadow_loc} ${v_userdb_loc}
 chmod 644 ${v_userdb_loc}
}

Checkpassword
if [ "${passwordok}" = "1" ] && [ "${usernameok}" = "1" ] ;then
 Setprivilege
 Addusertodb
else
 echo "Please Try again"
fi


推荐阅读
  • 解决Linux history命令不记录执行时间的方法
    本文探讨了如何通过配置环境变量来使Linux系统中的history命令记录每条命令的执行时间,包括具体的配置步骤和效果展示。 ... [详细]
  • 随着技术社区的发展,越来越多的技术爱好者选择通过撰写博客来分享自己的学习经验和项目进展。本文将介绍一个具体案例,即将一套原本运行于Windows平台的代码成功移植到Linux(Redhat)环境下的过程与挑战。 ... [详细]
  • Python编码入门指南
    本文探讨了使用Python进行网络设备连通性测试的简便性,特别是针对IP地址范围为192.168.0.101至192.168.0.200的设备。通过比较Python与Shell、Java等语言,展示了Python在执行此类任务时的优势。 ... [详细]
  • 本文档详细介绍了在 Kubernetes 集群中部署 ETCD 数据库的过程,包括实验环境的准备、ETCD 证书的生成及配置、以及集群的启动与健康检查等关键步骤。 ... [详细]
  • 本文探讨了如何使用ls -lsh命令排除总大小输出,仅显示文件大小的方法,并提供了几种实现这一目标的解决方案。 ... [详细]
  • Linux系统中,文件权限不仅限于常见的777、666等数值表示,还包括特殊的权限位如setuid、setgid和sticky bit,这些权限位能够赋予文件或目录额外的功能,增强系统的灵活性和安全性。 ... [详细]
  • 本文详细介绍了如何在Linux系统中安装和配置GitLab Runner,包括添加YUM源、安装GitLab Runner以及注册Runner的具体步骤。 ... [详细]
  • 本文介绍如何在Ubuntu操作系统中为DELL Latitude系列笔记本配置触摸板的自定义快捷键。此方法不仅适用于DELL品牌,其他品牌的笔记本也可能适用。通过编写简单的脚本,用户可以实现触摸板的快速开关。 ... [详细]
  • 在尝试从一个包含多个文件路径的文本文件中筛选出.c、.cpp和.h文件时,遇到了bash环境下的语法错误。本文将探讨如何修正这一问题并成功执行命令。 ... [详细]
  • 了解如何快速搭建属于自己的个人博客,无需编程基础,适合Mac和Windows用户。通过本文,您将学会使用GitHub Pages和Hexo构建一个完全自主的在线空间。 ... [详细]
  • 本文基于《Linux命令行与Shell脚本编程大全》第三版的第十一章内容,探讨了如何构建基本的Shell脚本,包括命令组合、脚本创建、消息显示、变量使用、输入输出重定向、管道、数学运算及脚本退出等方面的知识。 ... [详细]
  • 个人用户可借鉴的企业级三大安全准则
    在数字时代,个人数据安全变得尤为重要。本文将探讨三个来自企业实践的安全原则,这些原则不仅适用于企业,也能帮助个人用户提升自身的信息安全防护水平。 ... [详细]
  • 本文详细探讨了在使用Python、uWSGI和nginx配置时遇到的权限问题,并提供了具体的解决方案。 ... [详细]
  • 深入理解Shell中的特殊流程控制语句
    本文将详细介绍Shell脚本中的特殊流程控制语句,包括exit、break和continue语句的使用方法及其应用场景,帮助读者更好地掌握这些控制结构,提高脚本编程的灵活性。 ... [详细]
  • 本文详细介绍了如何在Python环境中配置与Oracle数据库的连接,包括必要的软件安装和环境变量设置等步骤,旨在为初学者提供清晰的操作指南。 ... [详细]
author-avatar
妹纸叫BLACK
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有