标签:文件 参考 grep -w 技术 注释 backup 删除 怎么 net
需求:SVN的项目文件如果被普通用户误删了,虽然SVN能恢复,但是如果删除的文件比较多,注释的内容简单,恢复的时候需要一个个的保存到本地,然后再上传到服务器上,会很麻烦,可能还会出现提交代码版本冲突的问题,那么,怎么才能禁止普通用户删除SVN中的项目文件呢?
一、找到需要加权限的版本库中hooks目录下的pre-commit.tmpl文件,备份并将其重命名,将后缀去掉,为pre-commit脚本文件。如果没有该文件,则新建脚本pre-commit。
cp pre-commit.tmpl pre-commit.tmpl-backup
二、修改pre-commit文件内容
vim pre-commit
修改为:
或者将68-81行全都注释掉,加入以下代码:
REPOS="$1" TXN="$2" # Make sure that the log message contains some text. SVNLOOK=/usr/bin/svnlook if [ -z `$SVNLOOK log -t "$TXN" "$REPOS" |grep "[a-zA-Z0-9]"` ];then echo "请输入注释!" >&2 exit 1 fi USER=`$SVNLOOK author -t $TXN $REPOS` ADMINLIST=admin,zhangsan # 这里是拥有删除权限的用户,逗号隔开 if [ "`echo $ADMINLIST|grep -w $USER|wc -l`" -eq 0 ];then if [ `$SVNLOOK changed -t $TXN $REPOS |grep "^D "|wc -l` -gt 0 ];then echo "你没有权限删除,请联系管理员删除!" >&2 exit 1 fi fi # All checks passed, so allow the commit. exit 0
详细介绍:
ADMINLIST=admin,zhangsan 表示只有admin和zhangsan这两个用户有删除文件的权限,如果还有其他人,只需用逗号隔开,当然,这些用户名需要在conf下的passwd文件中进行配置
三、给钩子脚本执行权限 chmod 755 pre-commit,不需要重启
四、测试
1、没有输入注释
2、删除
本文参考自博客:(1)https://blog.csdn.net/helijie92902/article/details/54534156
(2)http://blog.chinaunix.net/uid-29893597-id-5594571.html
(3)https://blog.51cto.com/laoguang/1139645
标签:文件 参考 grep -w 技术 注释 backup 删除 怎么 net
原文地址:https://www.cnblogs.com/opsprobe/p/11433869.html