Verwenden der neuesten Version von cygwin64 in Windows 10. Ich habe es geschafft, ein Verzeichnis zu erhalten foo
, dessen Berechtigungen etwas Seltsames haben. Ich bin mir nicht ganz sicher, wie das passiert ist, aber hier sind die Symptome:
$ cd /f/temp/foo
$ ls -lad .
drwxrwx---+ 1 Mm None 0 Jun 16 14:03 .
$ mkdir bar
$ ls -lad bar
d---rwx---+ 1 Mm None 0 Jun 16 14:17 .
$ cd bar
Permission denied
$ umask
0022
Dies ist bei anderen Verzeichnissen nicht der Fall, z /f/temp/ok
. Bei Verwendung von ls
Schaltern kann ich keinen Unterschied zwischen f/temp/ok
und feststellen /f/temp/foo
.
Wenn ich das tue, chmod 775 bar
kann ich eingeben bar
, aber das Erstellen eines Verzeichnisses unter bar
hat das gleiche Problem. Also dieses Problem mich tun stoppt git init
in /f/temp/foo
. Das Tun chown -R Mm *
im Elternteil macht keinen Unterschied.
Meine Frage ist: Was verursacht dieses Problem und was ist die richtige Lösung?
Es sind einige Unterschiede sichtbar, icacls
aber ich bin mir nicht sicher, wie ich sie interpretieren soll:
$ cd /f/temp
$ icacls ok >ok.txt
$ icacls foo >foo.txt
$ diff -b ok.txt foo.txt
1c1
< ok NULL SID:(DENY)(Rc,S,REA,WEA,X,DC)
---
> foo NULL SID:(DENY)(Rc,S,REA,WEA,X,DC)
3c3
< DESKTOP-AO2AIEC\None:(RX)
---
> DESKTOP-AO2AIEC\None:(Rc,S,RA)
8c8
< Everyone:(RX)
---
> Everyone:(Rc,S,RA)
10,11c10,12
< CREATOR OWNER:(OI)(CI)(IO)(F)
< CREATOR GROUP:(OI)(CI)(IO)(RX)
---
> CREATOR OWNER:(OI)(CI)(IO)(DENY)(S,RD,WD,AD,REA,WEA,X,DC)
> CREATOR OWNER:(OI)(CI)(IO)(D,Rc,WDAC,WO,RA,WA)
> CREATOR GROUP:(OI)(CI)(IO)(Rc,S,RA)
16c17
< Everyone:(OI)(CI)(IO)(RX)
---
> Everyone:(OI)(CI)(IO)(Rc,S,RA)
Ich habe jetzt eine Problemumgehung: Erstellen Sie ein anderes Verzeichnis unter /f/temp
, cp -r
kopieren Sie dann alle Dateien foo
in das neue Verzeichnis, löschen Sie foo
das neue Verzeichnis und benennen Sie es um. Wenn ich cp -a
anstelle des cp -r
Problems benutze , bleibt das Problem bestehen.
setfacl -b foo
Antworten:
Der von icacls gezeigte Überschuss an DENY kann durch die jüngsten Änderungen in der Cygwin-DLL (zwischen 2,3 und aktuell 2,5) verursacht werden. Es dauerte einige Runden, bis es richtig war und Dateien oder Verzeichnisse mit rätselhafter ACL hinterlassen haben könnten.
Um die ACLs
-b
zu bereinigen, wurde setfacl ein Schalter hinzugefügtAls Referenz https://cygwin.com/cygwin-ug-net/ov-new.html#ov-new2.4s
quelle