Cygwin mkdir crea un directorio para el que no tengo permisos

Cygwin mkdir crea un directorio para el que no tengo permisos

Usando la última versión de cygwin64 en Windows 10. Logré obtener un directorio fooque tiene algo extraño en sus permisos. No estoy muy seguro de cómo sucedió esto, pero estos son 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 con otros directorios, por ejemplo /f/temp/ok. Al usar lsinterruptores no veo ninguna diferencia entre f/temp/oky /f/temp/foo.

Si lo hago chmod 775 bar, puedo ingresar bar, pero luego crear un directorio bartiene el mismo problema. Entonces este problema me impide git inithacerlo /f/temp/foo. Hacer chown -R Mm *en los padres no hace ninguna diferencia.

Mi pregunta es: ¿Qué está causando este problema y cuál es la solución adecuada?

Hay algunas diferencias visibles icaclspero 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 alternativa por ahora: cree otro directorio en /f/temp, luego utilícelo cp -rpara copiar todos los archivos fooal nuevo directorio, luego elimine fooy cambie el nombre del nuevo directorio. Si uso cp -aen lugar de cp -rel problema persiste.

Respuesta1

El exceso de DENY mostrado por icacls puede deberse a los cambios recientes en cygwin dll (entre 2.3 y 2.5 actual). Tomó algo de tiempo para estar en lo cierto y podría haber dejado archivos o directorios con una ACL desconcertante.

Para desinfectar las ACL, -bse agregó un interruptor a setfacl

setfacl -b foo

Para referenciahttps://cygwin.com/cygwin-ug-net/ov-new.html#ov-new2.4s

información relacionada