#!/bin/bash
#author Template
. /etc/init.d/functions DATE_TIME=$(date +%F-%T)
FILE_PATH='/etc/ppp/chap-secrets'
FILE=`basename ${FILE_PATH}`
BAK_DIR='/etc/ppp/backup'
BAK_FILE="${BAK_DIR}/${FILE}.${DATE_TIME}"
find ${BAK_DIR} -name "chap-secrets.*" -mtime +30 -delete [ $UID -ne ] && {
echo "Please run as root"
exit
}
function Usage(){
echo "Usage: $0 {--add|--del|--search} username [password]"
exit
} [ -f $FILE_PATH ] || touch ${FILE_PATH}
[ -d ${BAK_DIR} ] || mkdir ${BAK_DIR} case "$1" in -a|--add)
[ $# -ne ] && echo "Usage: $0 {--add|-a} username password" && exit shift
if egrep "^\b$1\b" ${FILE_PATH} &> /dev/null;then
action $"vpnuser,$1 is exist" /bin/false
exit
else
chattr -i ${FILE_PATH}
\cp ${FILE_PATH} ${BAK_FILE}
echo -e "$1\t\tl2tpd\t\t$2\t\t*" >> ${FILE_PATH}
[ $? -eq ] && action $"Add $1" /bin/true || action $"Add $1" /bin/false
chattr +i ${FILE_PATH}
fi
;;
-d|--del)
[ $# -ne ] && echo "Usage: $0 {--del|-d} username" && exit shift
if [ `grep "^$1\b" ${FILE_PATH} | wc -l` -lt ];then
action $"vpnuser $1 is not exist" /bin/false
exit
else
chattr -i ${FILE_PATH}
\cp ${FILE_PATH} ${BAK_FILE}
sed -i "/^$1/d" ${FILE_PATH}
action "Del $1" /bin/true
chattr +i ${FILE_PATH}
exit
fi
;;
-s|--search)
[ $# -ne ] && echo "Usage: $0 {--search|-s} username" && exit shift
if [ `grep -w "$1" ${FILE_PATH} | wc -l` -lt ];then
echo $"vpnuser $1 is not exist";exit
else
echo $"vpnuser $1 is exist ";exit
fi
;;
*)
Usage
;;
esac

L2TP用户添加和删除、搜索脚本的更多相关文章

  1. 打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件

    第三章 建议学习时间8小时      总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demo ...

  2. Javascript DOM 03 表格添加、删除 + 搜索

    获取 tBodies.tHead.tFoot.rows.cells   隔行变色 鼠标移入高亮   添加.删除一行 DOM方法的使用                                   ...

  3. Django实现简单的用户添加、删除、修改等功能

    一. Django必要的知识点补充 1. templates和static文件夹及其配置 1.1 templates文件夹 所有的HTML文件默认都放在templates文件夹下. 1.2 stati ...

  4. mysql用户密码修改,用户添加、删除及设置权限

    一下的示例所用用户名和密码为:test,111111 Mysql密码修改: Mysql修改密码需要root的权限,先执行mysql -uroot -p(密码); 1)使用set password方式来 ...

  5. 使用vue实现用户管理 添加及删除功能

    简单的管理系统-增删改查 添加及删除功能 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu ...

  6. 如何添加或删除ubuntu用户和组【转】

    转自:http://blog.csdn.net/sin90lzc/article/details/7525670 在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个 ...

  7. 用Bash脚本将Linux普通用户添加为系统管理员

    将Linux普通用户添加为系统管理员在Gnome或KDE这样强大与完善的桌面环境下是非常简单的事情,一般来说在用户设置的对话框里就直接有相应选项.不过,出于简洁与高效的风格,自己目前并未使用这些高端但 ...

  8. tab一些 添加 删除 搜索

    tab一些 添加 删除 搜索 案例 <!DOCTYPE html><html lang="en"><head> <meta charset ...

  9. Linux命令之useradd和userdel(添加、删除用户)

    一.[useradd]:添加用户命令 1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户. 2.格式 useradd [-d home] [-s sh ...

随机推荐

  1. 牛客网Java刷题知识点之表达式类型的自动提升

    不多说,直接上干货!

  2. python 发布

    使用distutils.core.setup函数发布程序 将要发布的包放到mypub的目录下 在mypub目录下创建一个setup.py文件 setup.py文件的设置 from distutils. ...

  3. 固定ip地址

    IP.  配置文件写数据库文件连接时,之前一直是就写个.  ; 毕竟之前就自己本地用.现在需要,写ip地址,但是公司点的ip的都是自动获得的.并且过一段时间还会改变. 所以,需要固定一下啊. 首先cm ...

  4. 《Head First 设计模式》之模板方法模式——冲泡咖啡和茶

    模板方法模式(Template) ——在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤. 好莱坞原则:别调用(打电话给 ...

  5. 从零开始的全栈工程师——js篇2.15(offsetLeft)

    元素的属性 Div.attributes 是所有标签属性构成的数据集合 Div.classList 是所有class名构成的数组集合 在classList的原型链上看以看到add()和remove() ...

  6. form表单多文件上传

    1.html/jsp主页 <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  7. 创作了一个xml的替代格式

    xml格式: <?xml version="1.0" encoding="GB2312"?> <Relations> <Relat ...

  8. SpringBoot的异步调用介绍

    参考博客: https://www.cnblogs.com/jebysun/p/9675345.html https://blog.csdn.net/weixin_38399962/article/d ...

  9. centos7 源码编译nginx

    使用configure命令配置编译.它定义了系统的各个方面,包括允许使用 nginx 进行连接处理的方法.最后它创建一个Makefile.该configure命令支持以下参数: --prefix=pa ...

  10. python数据类型、输入输出、运算符、条件判断、循环

    变量以及类型 变量:存储程序运行中的数据,变量有3个要素:变量名.变量类型.变量值.python属于弱类型语言,不需要声明变量类型. [root@localhost python]# ipython3 ...