gpt4 book ai didi

git - 如何将 git 存储库设置为只读?

转载 作者:IT王子 更新时间:2023-10-29 00:44:12 24 4
gpt4 key购买 nike

我有一些通过 SSH 远程访问的 git 存储库,我想将其中一些设置为只读以防止更多推送。有些人有指向这些存储库的 Remote 。

这些裸存储库已初始化 --shared=group,因此将所有文件的文件权限设置为 660 是否足以允许 SSH 访问,但不允许写入?或者有更简单的方法吗?

干杯。

最佳答案

有不止一种方法可以做到这一点。

  • 如果您的每个用户都有一个 shell 帐户(可能是有限的),并且他们每个人都通过自己的帐户访问 git 存储库,您可以使用文件系统权限来控制对 git 存储库的 SSH 访问.在 Unix 上,这些将是对目录 的写入权限,可能需要创建组和组的特定权限(设置“粘性组 ID”)。

  • 推送需要 git-receive-pack 位于用户的 $PATH 中,并且对他们来说是可执行的……尽管我不确定这种方法的可行性。

  • 您可以使用 updatepre-receive hook 对存储库进行访问控制,例如使用 update-paranoid来自 contrib/hooks 的示例钩子(Hook)在 git 资源中。

  • 如果用户数量较多,您最好使用工具来管理对 git 存储库的访问,例如 Gitosis (在 Python 中,需要安装工具)或 Gitolite (在 Perl 中)。

  • 对于只读访问,您可以设置 git daemon 通过 git:// 提供只读的匿名(和未经身份验证的)访问协议(protocol),而不是通过 SSH 协议(protocol)访问。

    请参阅 url.<base>.insteadOf 的文档配置变量,用于简化从 SSH 到 GIT 协议(protocol)的转换。


另请参阅第 4 章。“Git on the Server ” of Pro Git Scott Chacon 的书(CC-BY-NC-SA 许可)。

关于git - 如何将 git 存储库设置为只读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1662205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com