Windows 说拒绝访问我拥有的文件

Windows 说拒绝访问我拥有的文件

所以,最近 Windows 决定对我进行一些欺骗,并使我无法提交到我的 git 存储库

它在 git 中(在 Cygwin 中)给了我这个错误:

$ git commit -a
error: insufficient permission for adding an object to repository database .git/objects

error: NVG510Fixer/NVG510Fixer/Resources/layout/WarningConfirmation.axml: failed to insert into database
error: unable to index file NVG510Fixer/NVG510Fixer/Resources/layout/WarningConfirmation.axml
fatal: updating files failed

好吧...但随后我进入 NVG510Fixer 文件夹并递归地获取其中所有内容的所有权,并确保每个人拥有完全控制权。这似乎有效,但并不能消除错误。因此,我决定转到.git并右键单击属性,然后从那里(递归地)获取所有权。此时,情况变得更加奇怪:

在此处输入图片描述

Windows 到底在干什么?!我是管理员。这台计算机甚至没有加入域。我怎么就不能访问几分钟前还能访问的文件了!?

答案1

使用takeown来自管理命令行的命令。可以删除Full Access管理员组的权限,如果发生这种情况,GUI 版本无法更改权限,但命令行命令仍然可以执行此操作。

takeown /f C:\dev\nvg510controls\.git /r /d Y

如果你想要更特别,你可以设置权限通过命令行

icacls C:\dev\nvg510controls\.git /t /grant Everyone:(F)

如果这两个命令都不起作用,请下载执行程序并执行命令

psexec -i -s icacls C:\dev\nvg510controls\.git /t /grant Everyone:(F) 

它将icacls以 SYSTEM 用户而不是管理员用户身份运行。

答案2

我不知道这是否会对任何人有所帮助,但我在这里要指出的是,我刚刚遇到了 Git 没有权限访问文件的问题,并尝试了上述答案但没有成功。

问题原来是这样的,在一台相当新的服务器上,企业病毒检查程序发现 Git 进程的 .git 目录中有大量活动,因此将 Git 标记为可疑进程并停止允许其访问任何文件。

答案3

尝试将所有者重新改为其他人,然后再递归改回您自己。这对我来说通常很管用。我认为这可能是因为您无权访问子文件夹和文件,而只能访问 .git 文件夹。更改所有者并选择所有子文件夹选项。然后在启用相同树选项的情况下更改权限,看看是否有效

相关内容