linux - 如何只允许特定用户将提交推送到主分支
问题描述
我正在尝试设置一个 git 服务器,并且我只想允许特定用户将提交推送到 master 分支。
我尝试使用 Linux 组权限设置来满足上述要求,但这似乎不是正确的方法。
我什至不知道搜索这个答案的关键词是什么。
任何帮助,将不胜感激。
解决方案
你有两个选择:
到目前为止,最简单的解决方案是使用已经提供此功能的托管软件。您可能想查看 GitLab,它提供 SaaS(托管在 gitlab.com)和自我管理实例(运行您自己的 gitlab 实例)的免费选项。或者github。或比特桶。或者我确定还有其他我没有想到的。
如果你真的不想使用其中的任何一个,你可以在一个简单的 git 服务器上实现访问控制,但这并不是那么简单。简短(或者更确切地说,glib)的答案是“钩子”——但钩子只是一个在发生某些事情时运行的脚本——就像在这种情况下你会使用 prereceive 钩子,它在有人试图推送并决定是否推送时运行接受推送。现在,你的钩子怎么知道谁在推?(提交元数据不指示谁在推送。您需要的是围绕实际连接进行身份验证,以及脚本中身份验证的可见性,以便脚本可以实施您的授权规则。这很快分解为“这取决于您的环境“。)
由于不可能详尽地涵盖手动执行此操作的所有场景,希望您能找到您喜欢的预打包解决方案,或者您会发现以上内容足以让您指出正确的方向去做手动。
推荐阅读
- reactjs - 如何以变量为键设置状态?
- postgresql - Slick-pg:如何使用 arrayElementsText 和重叠运算符“?|”?
- powershell - 具有多个变量的 PowerShell 添加内容到列
- c# - WebApi 2 路由与?或者 /
- java - 列中的最大值
- sql-server - CTE 语句中不存在列名
- r - 将 dgCMatrix 转换为数据框
- vim - 通过搜索模式编辑 arg 列表中的文件
- javascript - 制表器将历史记录保存在字典中
- google-apps-script - 使用 GmailApp.sendEmail 的 Google 脚本中的“无效参数::标头无效”错误