【问题标题】:Restrict read access in git repo using gitolite使用 gitolite 限制 git repo 中的读取访问
【发布时间】:2016-11-18 05:15:55
【问题描述】:

我正在使用 gitolite 为 git 存储库限制访问。

任何人都可以告诉如何配置限制分支以及如何限制特定目录/文件的读取权限?

【问题讨论】:

  • 这在web界面中可能是可能的,但是git本身不支持这个。人们克隆整个回购并获得一切。您必须创建一个“审查”的第二个存储库,其中仅包含应该可见的内容。

标签: git gitolite


【解决方案1】:

Gitolite overview中所述

在回购级别控制读取访问,

您要么访问(克隆)完整 repo,要么根本不访问。

敏感文件通常不应在存储库中(或在私有存储库中),并通过smudge filter content driver 生成。 'smudge' 脚本可以(在git checkout 上)检查您是否是授权用户,如果是,则获取文件(来自受信任的私人来源,而不是来自 git 存储库)并在结帐时生成您的受限文件。

写入另一方面,访问限制一直是可能的,as I mentioned 6 years ago
使用 VREFS,您可以强制执行各种策略(例如 git commit messagesbased on roles

是的,你可以restrict pushes based on file/DIR

你甚至可以使用LDAP groups to restrict gitolite access


用于限制基于目录/文件或分支/标签的读取访问,除了 gitolite...

  • 首先,即使 gitolite 也不这样做
  • 这不是 Git 存储库的工作方式:您必须对侦听器(https 或 ssh)级别施加限制,即 git upload-pack 的级别(在客户端 git fetch 期间在服务器端完成)正在请求包:它由 ssh 或 https smart protocol 调用。
    这将涉及包检查(使用git verify-pack),这会大大减慢克隆/获取操作,据我所知尚未完成。

因此我最初的建议是不要将任何受限/敏感文件放在 git repo 中。

【讨论】:

  • 感谢您的建议@Vonc。除了 gitolite 之外,还有其他基于目录/文件或分支/标签限制读写访问的选项吗?
  • @vinay 我已经编辑了答案以解决您的问题(以及指出现有的 wirte 限制)
猜你喜欢
  • 2015-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多