我是否可以使用.gitignore或.git / info / exclude阻止特定用户拉/推那些被视为“受限”的文件?

问题描述 投票:0回答:2

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

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

假设“ 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达到此结果?

windows git gitignore git-bash openssh
2个回答
1
投票

是否可以使用.gitignore或.git / info / exclude达到此结果?

编号

Git完全关于commits,并进行拉(实际上是git fetch),而推操作则转移commits。提交contain文件-提交部分由数据(快照)和部分元数据(信息about快照)组成,并且您都有提交,在这种情况下,您具有all文件,或者您没有提交,在这种情况下,您没有拥有所有文件。

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.