Re: a problem with git describe
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 23, 2022, 23:44 UTC
- Message-ID
- <xmqqk0bf1i12.fsf@gitster.g>
- In-Reply-To
- <xmqqczh73hns.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 18 quoted lines
> Philip Oakley <philipoakley@iee.email> writes: > >>> guy@renard ~/Software/uncrustify $ sudo git describe --always --dirty >> ... >> There has also been added an escape hatch of allowing "*" for the >> permitted safe directories. but do check the updated manuals, and the >> git mailing list archive (update the search in the above link). > > In this particular case, I do not think '*' is needed, but you need > to be careful here. Whose configuration are you suggesting to add > such an entry? Yourself? ~root/.gitconfig? > > I wonder if we should loosen "the same owner" check somewhat to > cover this situation better. I expect people also run the > installation in repositories they own with "sudo make install", > and complaining "euid does not own that repository" when it is > merely because they are running as root (and their real identity > is still in ruid) feels a bit too strict to be useful.
Actually, not quite. when "git" runs in "sudo git", the real identity has long lost, so the below would not help. Sigh.
git-compat-util.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git i/git-compat-util.h w/git-compat-util.h index 63ba89dd31..90dc1b17cd 100644 --- i/git-compat-util.h +++ w/git-compat-util.h @@ -398,7 +398,7 @@ static inline int is_path_owned_by_current_uid(const char *path) struct stat st; if (lstat(path, &st)) return 0; - return st.st_uid == geteuid(); + return st.st_uid == geteuid() || st.st_uid == getuid(); } #define is_path_owned_by_current_user is_path_owned_by_current_uid