Usando a versão mais recente do cygwin64 no Windows 10. Consegui um diretório foo
que tem algo estranho em suas permissões. Não tenho certeza de como isso aconteceu, mas aqui estão os sintomas:
$ 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
Isso não acontece com outros diretórios, por exemplo /f/temp/ok
, . Usando ls
switches, não consigo ver nenhuma diferença entre f/temp/ok
e /f/temp/foo
.
Se eu fizer chmod 775 bar
isso, posso entrar bar
, mas criar um diretório bar
tem o mesmo problema. Então esse problema está me impedindo de fazer git init
isso /f/temp/foo
. Fazer chown -R Mm *
nos pais não faz diferença.
Minha pergunta é: o que está causando esse problema e qual é a solução adequada?
Existem algumas diferenças visíveis, icacls
mas não sei como interpretá-las:
$ 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)
Eu tenho uma solução alternativa por enquanto: crie outro diretório em /f/temp
, use cp -r
para copiar todos os arquivos para foo
o novo diretório, exclua foo
e renomeie o novo diretório. Se eu usar cp -a
em vez do cp -r
problema persistir.
Responder1
O excesso de DENY mostrado pelo icacls pode ser causado pelas mudanças recentes na dll cygwin (entre 2.3 e 2.5 atual). Demorou um pouco para acertar e poderia ter deixado arquivos ou diretórios com ACL intrigante.
Para higienizar as ACLs, uma -b
opção foi adicionada ao setfacl
setfacl -b foo
Para referênciahttps://cygwin.com/cygwin-ug-net/ov-new.html#ov-new2.4s