我可以使用.gitignore或.git / info / exclude阻止特定用户拉/推被认为对他们“受限”的文件吗?

我正在使用Windows Git和OpenSSH在Windows Server 2008上托管一个裸存储库。 出于法律原因,我希望特定用户无法访问某些文件,但所有其他用户仍可访问这些文件。换句话说,我希望特定用户忽略某些“受限”文件(不可拉动)。

假设我们有两个用户(管理员和来宾),以及一个包含2个文件(a.txt和b.txt)的Git存储库。

假定“ b.txt”是Guest不能访问的受限制文件。

git clone guest@ipaddress:C:/path/to/repository.gitgit pull guest@ipaddress:C:/path/to/repository.git

应克隆或提取“ a.txt”

git clone administrator@ipaddress:C:/path/to/repository.gitgit pull administrator@ipaddress:C:/path/to/repository.git

应该克隆或提取两个文件。

是否可以使用.gitignore或.git / info / exclude来实现此结果?

lulu2008137 回答:我可以使用.gitignore或.git / info / exclude阻止特定用户拉/推被认为对他们“受限”的文件吗?

  

是否可以使用.gitignore或.git / info / exclude来实现此结果?

否。

Git与 commits 有关,然后进行拉(实际上是git fetch)和推送操作转移 commits 。提交包含文件-提交部分由数据(快照)和部分元数据(与快照有关的 信息)组成,并且您都有提交,在这种情况下,您可以具有 all 个文件,或者您没有提交,在这种情况下,您 不具有所有文件。

出于任何原因(合法,公司或其他原因)需要限制的文件,要么根本不在Git中,要么以某种预先保护的方式存储(例如,加密)。通常,“根本不使用Git”方法往往效果最好。考虑在Git中存储存储实际文件的受限制网站的URL。

,

不可能将用户访问权限限制为仅存储库的一部分。 gitignore文件旨在防止人们无意中签入他们不想要的代码,而不是限制对存储库中已有代码的访问。

即使是限制访问引用的解决方案,也可以被聪明的攻击者绕开,从而使他们从存储库中窃取数据。您应该假定对存储库具有读取访问权限的任何人都可以读取该存储库中的所有对象。如果您需要限制某些用户对某些数据的访问,则需要对其进行加密或将其存储在其他存储库中。

本文链接:https://www.f2er.com/3024832.html

大家都在问