首页 > 解决方案 > 多个目录中的相同单词文件,多个用户没有管理员权限

问题描述

我在当前项目中遇到了一个问题,即多个用户需要访问多个目录中的数百个 Word .docx 文件。他们对其 Windows 10 计算机没有任何管理员权限,并且他们希望将版本控制连接到它以提高安全性。

所以我试图通过首先创建一个 Git 存储库来解决这个问题,我将文档存储在一个文件夹中。我使用下载和解压缩 PortableGit 的代码分别创建了一个 bat 文件,克隆并将所有文档下载到他们的计算机上。但是这里的问题是,我尝试使用 Git 克隆创建符号链接,这需要您以管理员身份执行 bat(在这种情况下,这对最终用户来说是不可能的)。然后我尝试使用 LibGit2Sharp 创建一个 C# .net Core 3 Windows 应用程序,这样我就可以执行该程序(所以我想),但我仍然抱怨符号链接的管理员权限。然后我尝试使用硬链接,但我发现 Word 在保存最新更改后会替换文件,因此会断开链接。

感觉就像我只是在一个不应该太难解决的问题中转了一圈?他们需要在不同文件夹中处理同一个文档的原因是因为在不同的上下文中出于法律目的管理模板需要完全相同。另外,在不同的上下文/目录中有不同的人。

tldr; 我需要管理一个解决方案,其中可以在多个不同的目录中编辑 .docx 文件(将来可能是其他类型的文件),而无需在 Windows 10 环境中获得管理员权限。还需要版本控制。

标签: gitms-wordsymlinkdirectory-structurehardlink

解决方案


创建存储库时,如果启用了符号链接,Git 将尝试创建指向不存在文件的符号链接,以查看系统和文件系统是否支持符号链接。如果此操作失败也没关系,因为它只是意味着系统无法执行该操作,这在 Windows 上是预期的。但是,如果它确实失败了,那么 Git 会将符号链接检出为文件,因为没有其他方法可以表示它们。

libgit2 做同样的事情,因为它必须与 Git 兼容。

您需要担心此操作失败的唯一原因是您是否需要符号链接,听起来像您这样做。这个问题不仅限于 Git;这是您的脚本和权限模型以及 Windows 上的符号链接的问题。

Git 将克隆到现有的空目录中,因此您可以让脚本以管理员身份运行并为用户创建具有符号链接权限的目录,然后以用户身份克隆。如果您使用的是 Windows 10,则可以在系统上启用开发者模式;毕竟,Unix 系统已经使用符号链接工作了几十年。

当然,还有其他解决方案,包括不使用符号链接,只是告诉人们在正确的目录中查找文件。您还可以将这些文件存储在您以管理员身份创建符号链接的远程系统上,并授予每个人对文件的远程访问权限,可以是一个共享存储库,也可以是每个用户一个(尽管共享存储库通常不是一个好主意) . 使用硬链接不是解决方案,因为 Git 不保留或尊重硬链接,因此您无法有效地一起使用它们。

最后,您可以使用适用于 Linux 的 Windows 子系统并将数据存储在 DrvFS(仿真 Linux)文件系统上,因为它允许所有用户的符号链接。


推荐阅读