git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Permission issue in Git in DrvFs-mounted network drives
@ 2024-09-18 16:16 Marcos Del Sol Vives
  2024-09-18 16:30 ` rsbecker
  2024-09-20 15:51 ` brian m. carlson
  0 siblings, 2 replies; 9+ messages in thread
From: Marcos Del Sol Vives @ 2024-09-18 16:16 UTC (permalink / raw)
  To: git

Under WSL1 (Windows Subsystem for Linux), when using a network share
mounted via DrvFs, Git fails to add any files to a new or an existing
repository.

The reason is that Git tries to open a temporary file as with RW
permissions but mode 0444, which causes WSL1 (or Samba, unsure who's here
to blame) to create first an file empty with the read-only DOS attribute set
that prevents any writes, and then actually trying to opening it in write
mode, which of course fails.

Seems to be a pretty common issue that nobody has yet reported officially,
judging by the amount of posts on Stackoverflow, impacting not only WSL
but also CIFS under Linux (hence why sending to this mailing list and not
the Windows-specific one):

 - https://superuser.com/questions/681196/debugging-git-repo-permissions-on-samba-share
 - https://superuser.com/questions/1450094/git-on-wsl-commands-fail-despite-permissions-seeming-fine
 - https://superuser.com/questions/1491499/use-git-on-a-shared-drive-within-wsl

As a workaround, opening the file with permissions 0600 and then using a
fchmod with the final desired mode works, which is a very small change that
should cause no issues under neither real Linux nor WSL:

--- git-2.39.5.orig/wrapper.c
+++ git-2.39.5/wrapper.c
@@ -484,9 +484,11 @@ int git_mkstemps_mode(char *pattern, int
 			v /= num_letters;
 		}
 
-		fd = open(pattern, O_CREAT | O_EXCL | O_RDWR, mode);
-		if (fd >= 0)
+		fd = open(pattern, O_CREAT | O_EXCL | O_RDWR, 0600);
+		if (fd >= 0) {
+			fchmod(fd, mode);
 			return fd;
+		}
 		/*
 		 * Fatal error (EPERM, ENOSPC etc).
 		 * It doesn't make sense to loop.

The WSL team at Microsoft has been already informed as well:
https://github.com/microsoft/WSL/issues/12051


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-09-21 11:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-18 16:16 Permission issue in Git in DrvFs-mounted network drives Marcos Del Sol Vives
2024-09-18 16:30 ` rsbecker
2024-09-18 16:38   ` Marcos Del Sol Vives
2024-09-20 15:51 ` brian m. carlson
2024-09-20 18:15   ` Junio C Hamano
2024-09-20 18:36     ` Marcos Del Sol Vives
2024-09-20 20:43       ` brian m. carlson
2024-09-20 22:39         ` Marcos Del Sol Vives
2024-09-21 11:20           ` brian m. carlson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).