git 2.34.1 可疑所有权错误未被 safe.directory 修复。

3

在LXC中运行Ubuntu 22.04。git版本为2.34.1。在用户'brian'下安装了一个Web应用程序,但是对git的所有调用都无效(在PiOS系统上这很好用- git 2.20.1)。

我发现我得到了一个返回错误128,并尝试以www-data用户身份从命令行运行git命令,结果出现错误。

fatal: detected dubious ownership in repository at

从2.36的公告https://github.blog/2022-04-18-highlights-from-git-2-36/#stricter-repository-ownership-checks来看,似乎可以通过添加safe.directory选项来解决这个问题。
然而,我正在运行2.34.1版本。我已经尝试使用这个命令。
git config --global --add safe.directory '*'

以用户brian身份尝试使用sudo和非sudo权限都无效 - 错误仍然存在。

我还尝试了针对特定目录的操作,但也没有成功。

有什么建议可以解决这个问题吗?


1
您需要以接收错误的用户(www-data)身份执行该命令。 - dan1st
也许你的版本不支持 '*' 语法。尝试添加完整路径(因为 git 应该在错误消息中输出命令)。 - Philippe
用户 www-data 没有权限更新(或者也许是创建,或者两者都有)“他”的(它的)配置文件。如果你愿意为所有用户禁用所有安全性,你可以像你所做的那样(--system)。或者,你可以由拥有创建权限的人创建或更新 /var/www/.gitconfig 文件。最明智的做法可能是使用最窄的 safe.directory 设置:例如,仅列出应被视为安全的目录或目录。 - torek
@torek,我会研究一下。/.gitconfig/是否位于相应的具有关联Git存储库的文件夹中(有若干个文件夹并且其中某些是符号链接)?或者/var/www/被认为是www-data的主目录? - Brian
1
你得到的结果意味着后者(即用户 www-data/var/www 设置为其 $HOME)。 - torek
显示剩余2条评论
1个回答

12

对我而言(目前),解决方法是使用--system而不是--global

这个命令在新的安装上可行(如果不是root,需要使用sudo);

git config --system --add safe.directory '*'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接