首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何全局禁用git挂钩

如何全局禁用git挂钩
EN

Stack Overflow用户
提问于 2018-01-07 15:23:34
回答 2查看 3K关注 0票数 6

出于安全原因,我希望默认情况下禁用git钩子。

更具体地说,当我在我的(Kubuntu) OS帐户上的任何git存储库中运行git命令时,除非以某种方式指定,否则不应该执行任何git挂钩。

在Vagrant或Docker中运行我的所有代码,我想要避免的攻击是VM中的恶意代码写入git钩子目录,从而使其自身进入主机。默认情况下禁用git钩子是防止这种情况的一条防线。

我正在寻找一个不需要每个存储库工作和状态的解决方案。在我的搜索中,我遇到了this script,它打破了这两个要求。

理想情况下,有一个简单的解决方案,比如把它放在.bash_aliases

代码语言:javascript
复制
alias git='/usr/bin/git --no-hooks'
EN

回答 2

Stack Overflow用户

发布于 2019-06-04 09:59:04

$HOME/.gitconfig中设置core.hooksPath似乎很适合我

代码语言:javascript
复制
[core]
    hooksPath = $SOME_DIR_WITHOUT_HOOKS

要为特定存储库启用挂钩,您可能可以在$REPO/.git/config中将其重置

代码语言:javascript
复制
[core]
    hooksPath = $GIT_DIR/hooks
票数 8
EN

Stack Overflow用户

发布于 2018-01-25 01:17:21

钩子并不是拥有.git目录写权限的攻击者攻击.git目录用户的唯一方式,例如,选项diff.external可以被设置为执行任何操作,谁来跟踪所有新的Git功能?

如果您的开发环境在其中查找配置文件,或者如果它有一些在本地执行的脚本,那么即使让攻击者拥有对存储库的写访问权限也可能是不好的。

保护.git仍然是一个好主意,我提出了以下解决方案:

  • 使.git在虚拟机中为只读。
  • .git目录放在与虚拟机共享的工作目录之外。--git-dir标志或GIT_DIR环境变量控制Git查找.git目录的位置。

的缺点是,如果需要,.git目录不会与虚拟机共享,并且在使用每个不同的存储库之前,需要设置命令行标志或环境变量

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48135161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档