Git   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了防止其他g​​it作者大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我已经build立了自己的私人git服务器,并有一个由5名成员组成的团队。 我有他们的用户帐户所有设置,但我如何防止提交到远程由随机奇怪的帐户完成。 因为我的一些团队也使用github,不希望他们的用户名出现在日志中,而是他们的用户名,我分配他们。

开源项目上git仓库的最佳实践

是否有可能build立一个GitLab Linux服务器和Windows PC的工作?

Windows,Git和jenkins

ThreadScope的gettext.sh文件干扰Windows上的git

Git部署回滚工作stream程

为了防止用户使用“随机怪异账号”提交,你可以设置一个git pre-receive钩子来验证传入提交中的提交者/作者姓名与有效名称列表。 但是这不提供认证组件。

为了防止模仿,你可以简单地要求所有的通信都是gpg签名的( git commit -S ... ),并且你pre-receive hook来验证签名对服务器上的gpg keyring。

根据人们连接到远程服务器的方式,如果您有权访问该连接,则还可以将提交者/作者姓名与用于连接的用户名进行显式匹配。

更新1

如果你的提交者通过ssh推送你的服务器,那么上面的第三个选项可能是最简单的。 在.ssh/authorized_keys文件中,为每个标识用户的键设置一个环境变量:

environment="SSH_USER=lars" ssh-rsa ...

然后在pre-receive钩子中,可以使用该环境变量来查找某个表的有效提交者名称/电子邮件。 您可以阅读githooks(5)手册页中的pre-receive钩子,他们会在标准输入githooks(5)接收到以下格式的行:

<oldrev> <newrev> <refname>

您可以像这样从<newrev>获取提交名称

commiter_name=$(git show -s --format='format:%cn' <newrev>)

邮件使用%ce而不是%cn 。

更新2

或者,只是忘了查表。 在您的.ssh/authorized_keys文件中:

environment="ALLOWED_NAME=Bob Jones",environment="ALLOWED_EMAIL=bob@example.com" ssh-rsa ...

然后在你的预先接收钩子:

#!/bin/sh while read oldrev newrev refname; do cn=$(git show -s --format='format:%cn' $newrev) ce=$(git show -s --format='format:%ce' $newrev) [ "$cn" = "$ALLOWED_NAME" ] || { echo "*** Inalid committer name" exit 1 } [ "$ce" = "$ALLOWED_EMAIL" ] || { echo "*** Inalid committer email" exit 1 } done

我想你有你想要的。

**更新3 **

您可能可以使用http身份验证完成类似的事情,因为在您的pre-receive脚本中,您将有权访问REMOTE_USER环境变量,其中包含已验证的远程用户名称。 您可能需要使用某种表查找来获取批准的名称和电子邮件地址的值。

大佬总结

以上是大佬教程为你收集整理的防止其他g​​it作者全部内容,希望文章能够帮你解决防止其他g​​it作者所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: