使用Git hook來校驗push使用者名稱的合法性

2021-06-27 19:59:14 字數 1188 閱讀 1827

git和cvs乙個很大的不同是,它沒有乙個完善的許可權控制系統

即使採用了gitosis工具,它實際上是通過公鑰來控制某台伺服器的許可權

使用者在使用git前,依然需要設定user.name來控制提交時的使用者名稱

但即使你沒有設定,會有乙個預設的空使用者名稱或者是自己的登入使用者名稱,如root

這樣通過git log就很難看到對應的**到底是哪個人員修改的了

不過,可以通過hook來初步解決這個問題

在git目錄下的hooks目錄裡,新建乙個pre-receive的hook,**如下:

摺疊複製**

while read old new name; do

name

=$(git log -1 

–pretty

=format

:%an $new)

email

=$(git log -1 

–pretty

=format

:%ae $new)

user_prefix

=`echo $name | awk -f'_' ''`

check_user

=`echo $git_valid_user | grep -c $user_prefix`

if [ "$check_user" == "0" ]

then

echo "username $name denied, please set user.name"

exit 43

else

exit 0

fidone

需要在伺服器上設定乙個環境變數git_valid_user,儲存合法的使用者名稱列表

當使用者名稱校驗不通過,則返回乙個非0的值即可

如果需要嚴格的使用者名稱校驗,即提交的user.name必須是gitosis裡配置的對應client的使用者名稱

則可以在/usr/local/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/serve.py中第202行增加如下**:

os.environ['git_user']=user

然後在hook裡校驗name是否等於這個環境變數的值即可

但由於我們有一些公共的伺服器,可能很多開發人員都會在上面push**,所以不能使用此嚴格的校驗方式

只能使用上述的有效使用者名稱列表的驗證方式

Linux 使用md5sum來校驗檔案完整性

詳細用法參考部落格 這裡僅展示乙個簡單的例子 計算檔案的md5值 md5sum out.xls test.md5 cat test.md5 879377955bfe3a7f51f7760627922740 out.xls校驗檔案的md5值 校驗成功 md5sum c test.md5 out.xls...

使用schema校驗xml

一 背景 在大型的專案開發中,我們往往要是用xml進行一些規範化的處理。這時候就需要有高手先做好上層的一些規則。這時候往往就會用到schema對xml進行乙個規範化的校驗 二 實踐 我們以公司和員工為例來實踐一下。1 建立公司校驗schema companyschema.xsd 2 建立員工校驗sc...

EasyPoi 匯入校驗使用

因工作需要,使用easypoi匯入 並進行校驗,將 中有問題的地方,給出提示資訊,以 形式返回.本篇,直接講述excel匯入校驗,基本介紹後續補上.cn.afterturngroupid easypoi spring boot starterartifactid 4.1.2version depen...