#!/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 0 ] && {
echo "Please run as root"
exit 3
}
function Usage(){
echo "Usage: $0 {--add|--del|--search} username [password]"
exit 1
}
[ -f $FILE_PATH ] || touch ${FILE_PATH}
[ -d ${BAK_DIR} ] || mkdir ${BAK_DIR}
case "$1" in
-a|--add)
[ $# -ne 3 ] && echo "Usage: $0 {--add|-a} username password" && exit 1
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 0 ] && action $"Add $1" /bin/true || action $"Add $1" /bin/false
chattr +i ${FILE_PATH}
fi
;;
-d|--del)
[ $# -ne 2 ] && echo "Usage: $0 {--del|-d} username" && exit 1
shift
if [ `grep "^$1\b" ${FILE_PATH} | wc -l` -lt 1 ];then
action $"vpnuser $1 is not exist" /bin/false
exit 1
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 2 ] && echo "Usage: $0 {--search|-s} username" && exit 1
shift
if [ `grep -w "$1" ${FILE_PATH} | wc -l` -lt 1 ];then
echo $"vpnuser $1 is not exist";exit
else
echo $"vpnuser $1 is exist ";exit
fi
;;
*)
Usage
;;
esac