Usando la última versión de cygwin64 en Windows 10. He logrado obtener un directorio foo
que tiene algo extraño sobre sus permisos. No estoy muy seguro de cómo sucedió esto, pero aquí están los síntomas:
$ 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
Esto no sucede para otros directorios, por ejemplo /f/temp/ok
. Usando ls
interruptores no puedo ver ninguna diferencia entre f/temp/ok
y /f/temp/foo
.
Si lo hago chmod 775 bar
, puedo ingresar bar
, pero hacer un directorio debajo bar
tiene el mismo problema. Por lo que este problema es detener mí haciendo git init
en /f/temp/foo
. Hacer chown -R Mm *
en el padre no hace ninguna diferencia.
Mi pregunta es: ¿Qué está causando este problema y cuál es la solución adecuada?
Hay algunas diferencias visibles con, icacls
pero no estoy seguro de cómo interpretarlas:
$ 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)
Tengo una solución por ahora: cree otro directorio debajo /f/temp
, luego use cp -r
para copiar todos los archivos foo
en el nuevo directorio, luego elimine foo
y cambie el nombre del nuevo directorio. Si lo uso en cp -a
lugar del cp -r
problema persiste.
setfacl -b foo
Respuestas:
El exceso de DENY mostrado por icacls puede ser causado por los cambios recientes en cygwin dll (entre 2.3 y 2.5 actual). Tomó algo de tiempo estar en lo cierto y podría haber dejado archivos o directorios con ACL desconcertante.
Para desinfectar las ACL,
-b
se agregó un modificador a setfaclPara referencia https://cygwin.com/cygwin-ug-net/ov-new.html#ov-new2.4s
fuente