返回文章列表文章索引阅读全文
STARBLOG / 阅读手记
Git

Git command returns fatal error about the repository being owned by someone else

https://confluence.atlassian.com/bbkb/git-command-returns-fatal-error-about-the-repository-being-owned-by-someone-else-1167744132.html Summary When trying to execute a git command in a repository, suc

曦远 (DealiAxy)约 8 分钟
目录7 个章节

https://confluence.atlassian.com/bbkb/git-command-returns-fatal-error-about-the-repository-being-owned-by-someone-else-1167744132.html

Summary

When trying to execute a git command in a repository, such as a clone or push, git returns a fatal error saying the repository has dubious ownership and the git command is aborted.

Diagnosis

After executing a git command, an error similar to below is returned :

fatal: detected dubious ownership in repository at '<path to the repository>'
To add an exception for this directory, call:
git config --global --add safe.directory <path to the repository>

or

fatal: unsafe repository ('<path to the repository>' is owned by someone else)
To add an exception for this directory, call:

git config --global --add safe.directory <path to the repository>

Cause

A change was introduced in git 2.35.2 (and newer) to prevent a user from executing git commands in a repository owned by a different user. This is to address a security risk, CVE-2022-24765, for more details see setup_git_directory and Git security vulnerability announced. The change to setup_git_directory prevents git invocations from executing commands on a repository owned by another user.

Solution

On a single user system

Change the owner of the repository folder to the user which is running the git command.

For Windows : One way to do this is with the takeown command:

takeown /f <path to the repository> /r /d y

For Linux: Using the chown command :

chown -R username:group <path to the repository>

Single repository on a multi user system:

The default solution to workaround this issue would be to add the directory in question to git's safe.directory list, as the following command :

git config --global --add safe.directory <path to repository>

This is usually the command suggested by git in the error message to add this directory to the exception list.

Multiple repositories, system global settings:

Add the folder to the safe.directory list at the system level

git config --system --add safe.directory <path to the repository>

If using git > 2.36, there's also a wildcard to add all folders to safe.directory list :

git config --global --add safe.directory '*' # For the current user and all repositories
git config --system --add safe.directory '*' # For all users and all repositories

Before adding paths/repositories to the exception list, please make sure to understand the security implications of CVE-2022-24765 and setup_git_directory. To avoid this, it's strongly recommended for each user have their own clone of the repository.

_EOF_

Git command returns fatal error about the repository being owned by someone else

本文作者:
程序设计实验室
版权声明:
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

相关文章

讨论

共 0 条

良言一句三冬暖,恶语伤人六月寒。

加载评论中…