MSYS2-Berechtigungen

1248
antonio

In Windows 10 mit MSYS2 habe ich Folgendes festgelegt fstab :

none / cygdrive binary,posix=0,acl,user 0 0 

Ich kann keine Ausführungsberechtigungen festlegen chmod, obwohl Folgendes aclfestgelegt wurde fstab:

# echo > foo # ls -l foo  -rw-r--r-- 1 ant None 1 Jun 1 19:18 foo  # chmod +x foo # ls -l foo  -rw-r--r-- 1 ant None 1 Jun 1 19:18 foo 

In Cygwin dasselbe einstellen fstabfür dieselbe Datei, die ich bekomme:

# ls -l foo  -rwxrwx---+ 1 ant None 1 Jun 1 19:18 foo  

Welches ist das erwartete Verhalten.

1
"cygwin" hat seinen eigenen "fstab". Warum denken Sie, dass die Ausgabe gleich sein sollte? DavidPostill vor 8 Jahren 0
@ DavidPostill: Ich habe klargestellt, dass es das Gleiche ist. Im Gegensatz zu Cygwin verwendet MSYS2 jedoch standardmäßig "noacl". Deshalb habe ich ursprünglich nur die erste "fstab" betont. antonio vor 8 Jahren 0
Cygwin weiß, wie SIDs korrekt zugeordnet werden (siehe [POSIX-Konten, -Berechtigungen und -Sicherheit] (https://cygwin.com/cygwin-ug-net/ntsec.html)). Hat MSYS2 die gleiche Funktionalität? DavidPostill vor 8 Jahren 0
Dieses offene Ticket anzeigen [# 60 chmod wird ignoriert] (https://sourceforge.net/p/msys2/tickets/60/): "Status: open" DavidPostill vor 8 Jahren 0
Und dieses hier [# 158 Probleme mit chmod und fstab] (https://sourceforge.net/p/msys2/tickets/158/): "Status: wont-fix" DavidPostill vor 8 Jahren 0
Abgesehen davon, sollte Ihr Befehl nicht "chmod + x foo" sein? DavidPostill vor 8 Jahren 0
@DavidPostill: Sorry nur ein Tippfehler: "+ x" behoben antonio vor 8 Jahren 0
@DavidPostill: Ich habe den Wont-Fix-Thread zu SF gelesen, bevor ich hier poste. Es scheint, dass das eigentliche Problem nicht mit Berechtigungen, sondern mit falschen Bibliotheken besteht. Im selben Thread [sagt] ein MSYS2-Entwickler (https://sourceforge.net/p/msys2/tickets/158/#6e56) "` chmod` funktioniert für mich, wenn ich ohne noacl neu einhänge. " Er wiederholt dasselbe [hier] (https://sourceforge.net/p/msys2/tickets/60/#1d42). Als zusätzlichen Test habe ich versucht, die Option "acl" vollständig zu entfernen, ohne Erfolg. antonio vor 8 Jahren 0

1 Antwort auf die Frage

1
Boris Kolpackov

Ok, ich habe ziemlich viel Zeit damit verschwendet, also lassen Sie mich meine Ergebnisse festhalten:

Das Ändern von fstab ist hilfreich, aber Sie müssen die Datei über einen Pfad, der durch den Einhängepunkt verläuft, chmodeln. Mit anderen Worten:

mkdir /c/test # Outside MSYS2 root (/). cd /c/test touch foo chmod +x foo # works but presumably won't if inside MSYS root. chmod +x /c/test/foo # works and presumably will if inside MSYS root. chmod +x c:\test\foo # does not work -- go figure. 

Ziemlich hirntot, wenn Sie meine bescheidene Meinung fragen. Und die Lösung scheint ziemlich einfach zu sein: Wechseln Sie von noacl zu acl bei allen Standard-MSYS2-Mounts (der MSYS2-Root-Mount wird automatisch erstellt und es gibt keine Möglichkeit, von Fstab zu acl zu wechseln - Korrektur: vermutlich mit der Mount-Option zum Überschreiben möglich).