git - 如何全局禁用git hooks

标签 git security githooks

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

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

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

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

理想情况下,有一个简单的解决方案,例如将其放在.bash_aliases中:

alias git='/usr/bin/git --no-hooks'

最佳答案

$HOME/.gitconfig中设置core.hooksPath似乎对我有用

[core]
    hooksPath = $SOME_DIR_WITHOUT_HOOKS

要启用特定 repo 的 Hook ,您可以在$REPO/.git/config中将其重置
[core]
    hooksPath = $GIT_DIR/hooks

关于git - 如何全局禁用git hooks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48135161/

相关文章:

git - 通过 API 在 ECS 上挂载目录?

git - 在 github repo 上编辑 wiki

带有未暂存更改的 Git pull

Git 允许 "push to master"访问 LDAP 帐户中的特定用户

git - 如何克隆/获取仅获取历史记录的 repo 协议(protocol)

windows - 删除在 PostgreSQL 安装期间创建的 3 个默认数据库是否安全?

javascript - 使用随机 header 的 HTTP(S) 请求安全性

security - 在 JBoss 7.1.1Final 中添加新的安全域

git - 从另一个钩子(Hook)调用一个 git 钩子(Hook)

githooks - 指定在 git commit --no-verify 上跳过哪个钩子(Hook)