描述
由于公司员工流动性强,SVN服务器总是要添加和删除账号,每次都要反复的配置,当账号密码多了有点眼花缭乱,感觉有点麻烦,为了方便,所以写了一个基于"Sed"命令的用于添加和删除SVN账号的交互式脚本分享!
前提
我们都只到配置SVN服务,有两个文件"passwd"和"authz"。"passwd"用于存储账号密码信息,"authz"用于账号权限控制。我们这个脚本依赖于文件结构,需要准备两个规范化的文档。
编写步骤
1、准备的"passwd"文件一份,模板如下:
[[email protected] conf]# vi passwd
[users]
#产品负责人
#产品或项目经理
#UI设计师
#ID设计师
#软件工程师
#测试工程师
#硬件工程师
#运维工程师
2、准备已配置好权限和组的"authz"文件一份,模板如下:
#注:"="等于号后面需有一个空格
#用户组
[groups]
admin =
director =
manager =
software =
test =
hardware =
ui =
id =
#根目录
[/]
@director = rw
@manager = rw
* = r
省略内容.....
3、编写脚本
基本功能:添加和删除账号
编写要求:
-- 交互式添加与删除账号!
-- 当输出错误,则提示用户重新输入,不会退出脚本执行!
-- 输入的账号只允许英文字符输入,不可为空,不可含有特殊字符!
-- 输入的密码只允许英文、数字字符输入,不可为空,不可含有特殊字符!
内容如下:
[[email protected] conf]# vi svnmanager.sh
#!/bin/bash
echo ‘################################################
# 此脚本用于SVN账号管理,添加或删除 #
################################################
# 1、输入"1",表示添加一个SVN账号 #
# 2、输入"2", 表示删除一个SVN账号 #
# 3、若输入其他,则退出脚本 #
# 注:删除需谨慎操作! #
################################################‘
SVN_STORGE_PATH=/var/svn/ProductNew/conf
SVN_STORGE_PASSWORD=$SVN_STORGE_PATH/passwd
SVN_STORGE_AUTHZ=$SVN_STORGE_PATH/authz
read -p ‘请输入"1" 或 "2": ‘ i
date=`date +%Y-%m-%d\ %H:%M:%S`
case $i in
"1")
while :
do
read -p "请输入你要添加的账号: " a1
if [[ $a1 =~ ^[a-zA-Z]+$ ]]
then
while :
do
read -p "请输入密码: " a2
if [[ $a2 =~ ^[a-zA-Z0-9]+$ ]]
then
echo ‘################################################
# 编号 职称 #
# 01 产品负责人(director) #
# 02 产品或项目经理(manager) #
# 03 软件工程师(software) #
# 04 测试工程师(test) #
# 05 硬件工程师(hardware) #
# 06 UI设计师(ui) #
# 07 ID设计师(id) #
# 08 运维工程师(admin) #
################################################‘
a3="$a1 = $a2"
read -p "请输入职称(请输入编号): " a4
case $a4 in
"01")
sed -i ‘/^#产品负责人/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD
sed -i ‘s/^director = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ
echo "账号\"$a1\"添加成功!"
echo "时间:$date"
exit 0
;;
"02")
sed -i ‘/^#产品或项目经理/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD
sed -i ‘s/^manager = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ
echo "账号\"$a1\"添加成功!"
echo "时间:$date"
exit 0
;;
"03")
sed -i ‘/^#软件工程师/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD
sed -i ‘s/^software = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ
echo "账号\"$a1\"添加成功!"
echo "时间:$date"
exit 0
;;
"04")
sed -i ‘/^#测试工程师/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD
sed -i ‘s/^test = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ
echo "账号\"$a1\"添加成功!"
echo "时间:$date"
exit 0
;;
"05")
sed -i ‘/^#硬件工程师/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD
sed -i ‘s/^hardware = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ
echo "账号\"$a1\"添加成功!"
echo "时间:$date"
exit 0
;;
"06")
sed -i ‘/^#UI设计师/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD
sed -i ‘s/^ui = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ
echo "账号\"$a1\"添加成功!"
echo "时间:$date"
exit 0
;;
"07")
sed -i ‘/^#ID设计师/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD
sed -i ‘s/^id = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ
echo "账号\"$a1\"添加成功!"
echo "时间:$date"
exit 0
;;
"08")
sed -i ‘/^#运维工程师/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD
sed -i ‘s/^admin = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ
echo "账号\"$a1\"添加成功!"
echo "时间:$date"
exit 0
;;
esac
else
echo ‘INFO:输入有误!请重新输入!‘
echo ‘INFO:输入条件:只允许大小写字母、数字字符输入!不可为空!不可含有特殊字符!‘
fi
done
else
echo ‘INFO:输入有误!请重新输入!‘
echo ‘INFO:输入条件:只允许英文字符输入!不可为空!不可含有特殊字符!‘
fi
done
;;
"2")
read -p "请输入要删除的账号: " b1
if [[ $b1 =~ ^[a-zA-Z]+$ ]]
then
sed -i ‘/^‘"$b1"‘/d‘ $SVN_STORGE_PASSWORD
sed -i ‘s/‘"$b1",‘//g‘ $SVN_STORGE_AUTHZ
sed -i ‘s/‘"$b1"‘//g‘ $SVN_STORGE_AUTHZ
echo "已删除账号\"$b1\"!"
echo "时间:$date"
else
echo ‘INFO:输入有误!请重新输入!‘
echo ‘INFO:输入条件:只允许英文字符输入!不可为空!不可含有特殊字符!‘
fi
;;
*)
echo "INFO:输入有误!请重新执行脚本!重新输入!"
;;
esac
4、演示脚本执行效果
(1)我们创建一个账号看看!嘿嘿
看看文件"passwd"和"authz"文件中是否自动创建了账号和密码那!
(2)删除一个账号!
是不是感觉很方便了那!一个简单的脚本分享!
原文地址:http://blog.51cto.com/10978134/2147345
时间: 2024-10-11 14:18:45